由于工作需要,要在程序中通过http请求触发jenkins任务的构建,并且查询构建状态,在此记录下来作为备忘;
整体情况如下图所示,通过浏览器提交到web服务器的请求,会导致web服务器向Jenkins发起一次http请求,Jenkins收到请求后开始构建任务;
总的来说,为了达到远程触发Jenkins任务的目的,需要做以下操作:
为了节省时间可以在Docker环境下搭建Jenkins,有关细节请参考《docker下的Jenkins安装和体验》
接下来,开始实战;
先安装远程授权的插件"Build Authorization Token Root Plugin"。
为了远程触发任务成功,要先做以下设置:
接下来创建一个任务,来验证远程触发这个任务;
至此,相关的设置工作已经完成,我们来验证一下吧;
为了调整参数方便,我这里使用了postman来发起http请求,您也可以选择写代码发起;
参数名 | 参数值 | 说明 |
---|---|---|
job | hello-world | Jenkins上创建的任务名 |
token | 11ccef68782a94c7f393a1bc2247523de2 | 前面生成的token,远程验证使用 |
userName | Tom | 任务中增加的业务参数 |
cause | 123456 | 这个参数在查询任务详情的时候可以查到 |
有时候我们通过程序发起http请求触发了任务后,还想通过http请求获取任务的执行状态,这里介绍一下我这现在的做法:
注意上图红框中的note字段,该字段的值"123456",就是我们在POST触发任务时的cause字段,所以,这个字段只要能对上,就表示该任务就是您之前远程触发的任务了,因此请在触发的时候保证cause字段的唯一性;
至此,远程触发Jenkins任务的实战就完成了,希望能给您做自动化构建的时候提供一些参考;