jenkins参数化构建以及远程构建

3,653 阅读2分钟

参数化构建

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

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

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

参数化构建

填写完相应的参数配置,需要修改项目svn的路径,将其改成项目路径@$参数名称的格式.这时候的svn校验将失效,因为是配置了参数。

SVN路径

点击保存,就已经完成了参数化构建的配置了.这时候立即构建的按钮将变成Build with Parameters。

build with parameters

上下游均配置了参数化构建,但是触发了上游项目构建,并不能将参数传递到下游项目,这时候会发现下游项目使用的是配置中的默认参数head,这种情况的处理方式:

  1. 首先安装一款插件Parameterized Trigger Plugin安装完成后解除项目的上下游关系

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

Trigger/call builds other projects

上文解除了之前上下游关系,目的就是为了在这里通过参数传递进行配置。填入下游项目的工程名称,并点击Add Parameters添加参数,在这里我选择的是Predefined parameters,并填 写传参的参数,格式为参数名=${参数名大写}

Predefined parameters

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

jenkins远程触发构建

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

打开任务配置并找到构建触发器模块,勾选触发远程构建并配置一个秘钥,这个秘钥相当于密码,密码错误的话不会触发构建.

远程构建

  • 无参数访问:http://IP:端口号/job/任务名称/build?token=秘钥
  • 带参数访问: http://IP:端口号/job/任务名称/buildWithParameters?token=秘钥&&参数名=参数值

进行不登录触发构建:

首先先安装一个插件Build Authorization Token Root Plugin,点击右上角的登录名->设置

生成token

输入生成token的字符串,并生成一串token秘钥,拷贝生成的token秘钥,然后回到项目的构建触发器模块,将生成的token秘钥填入身份验证令牌中即可

生成秘钥

访问请求发生变化:

  • 无参访问:http://IP:端口号/buildByToken/build?job=任务名称&token=秘钥
  • 参数访问:http://IP:端口号/buildByToken/buildWithParameters?job=任务名称&token=秘钥&参数名=参数值

其他问题

在安装插件的时候,如果发现始终容易失败,可以换成其他镜像网站,在系统设置->插件管理->高级下设置。

生成秘钥