jenkins参数化构建

通过输入参数进行构建项目,需要插件build with parameters plugin,正常安装成功的jenkins应该都会自带了的,那么参数可以做什么事呢?如果我想要jenkins构建svn上指定版本号的代码并进行测试,就可以使用参数构建.

首先先了解一下怎么获取svn上指定的版本代码:通过项目路径@版本号进行获取的,版本号为head时,则取最新版本.

打开jenkins的任务配置,在General模块中找到参数化构建工程,勾选并添加自己的参数类型,本文选的是字符参数.
jenkins-1

填写完相应的参数配置,需要修改项目svn的路径,将其改成项目路径@$参数名称 的格式.这时候的svn校验将失效,因为是配置了参数.
jenkins-2
jenkins-3
点击保存,就已经完成了参数化构建的配置了.这时候立即构建的按钮将变成Build with Parameters ,是不是觉得很简单?

这时候又会发现,上下游均配置了参数化构建,但是触发了上游项目构建,并不能将参数传递到我的下游项目中,这时候会发现下游项目使用的是配置中的默认参数head,怎么做到传递一次参数即可触发构建呢?

这时候要先安装一款插件Parameterized Trigger Plugin,安装完成后解除项目的上下游关系

然后编辑上游项目的任务配置,找到Post Steps模块,点击Add post-build step,能够看到多了一项选择,选中Trigger/call builds other projects
jenkins-4

这里做的是正向配置上下游关系,上文解除了之前上下游关系,目的就是为了在这里通过参数传递进行配置。填入下游项目的工程名称,并点击Add Parameters添加参数,在这里我选择的是Predefined parameters,其他的暂时没有去了解.并填写传参的参数,格式为参数名=${参数名大写},这里我并有去测试小写能不能传递,亲们可以试试看…
jenkins-5

这时候构建上游,也能够接收到同样的参数并指定的SVN版本号进行构建了,如果想要在shell命令中使用参数,也可以通过${参数名大写}进行取值.

jenkins远程触发项目构建

jenkins远程触发项目构建能够实现的功能有很多,本文主要讲解如何通过一个url进行触发构建.

打开任务配置并找到构建触发器模块,勾选触发远程构建并配置一个秘钥,这个秘钥相当于密码,密码错误的话不会触发构建.
jenkins-6
如何调度已经说得很清楚了:http://IP:端口号/job/任务名称/build?token=秘钥

也可以使用参数进行远程触发:http://IP:端口号/job/任务名称/buildWithParameters?token=秘钥&&参数名=参数值

也就是说,这时候项目配置了参数构建及远程触发构建,就可以通过http请求的调度促使jenkins进行参数化远程构建…

这个时候会发现,如果我没有登录,它是不让我远程触发构建的,那我如何不需要登录就进行触发构建呢?

首先先安装一个插件Build Authorization Token Root Plugin,然后登录用户->点击右上角的登录名->再点击设置
jenkins-7

输入生成token的字符串,并生成一串token秘钥,切记拷贝生成的token秘钥,然后回到项目的构建触发器模块,将生成的token秘钥填入身份验证令牌中即可
jenkins-8
这时候请求的url将发生变化:

无参请求:http://IP:端口号/buildByToken/build?job=任务名称&token=秘钥

参数请求:http://IP:端口号/buildByToken/buildWithParameters?job=任务名称&token=秘钥&参数名=参数值

最后更新: 2020年11月12日 12:16

原始链接: https://midkuro.gitee.io/2020/05/20/jenkins-param/

× 请我吃糖~
打赏二维码