如何在远程触发Jenkins构建时不使用”fire and forget”

99次阅读
没有评论

问题描述

在使用Bamboo触发一个参数化的Jenkins构建时,希望能够等待构建完成并返回构建的成功状态,而不是立即返回构建已创建的状态。用户在问题中提到了一个插件,但不确定如何使用它来实现这个需求。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

用户可以使用名为jenkins-remote-builder的脚本来实现远程构建的跟踪。以下是该脚本的一些详细信息(来自其README.md):

示例

jenkins=https://user:pass@jenkins.mydomain.com:8080
jenkins_job=MyApp-Deploy
environment=dev
application=myapp
revision=9fd71f63b351b8208264daf86d292ced580a2f60
./jenkins_remote_trigger.sh \
            -h ${jenkins} \
            -j ${jenkins_job} \
            -p "ENVIRONMENT=${environment}&APPLICATION=${application}&REVISION=${revision}"

用法

-h HOST     | --host=HOST                       Jenkins主机
-j JOBNAME  | --jobname=test-build-job          要触发的Jenkins作业的名称
-p JOBPARAM | --jobparam=environment=uat&test=1 Jenkins作业参数
-q          | --quiet                           不输出任何状态消息

在上面的示例中,我们使用jenkins-remote-builder脚本来触发远程构建,并等待构建完成。用户可以根据自己的需求修改脚本中的参数。

方案2

请注意以下操作注意版本差异及修改前做好备份。
用户可以在设置远程触发时,点击”Block until the remote triggered projects finish their builds”选项。这样,请求将等待构建完成并返回构建的状态。
以下是设置远程触发的步骤:
1. 打开Jenkins作业的配置页面。
2. 在”Build Triggers”部分,勾选”Block until the remote triggered projects finish their builds”选项。
3. 保存配置。
请注意,这种方法只适用于从Jenkins本身触发远程构建的情况。对于从Bamboo等其他工具触发的构建,这种方法可能无法实现需求。

方案3

用户可以使用Jenkins CLI来触发作业并等待其完成。以下是使用Jenkins CLI的步骤:
1. 安装Jenkins CLI。可以从Jenkins官方网站下载并安装Jenkins CLI。
2. 使用以下命令触发作业并等待其完成:

jenkins-cli.sh -s <Jenkins URL> build <job name> -p <parameters> -s -v

请注意,这种方法只适用于触发作业并等待其完成的情况。对于触发推广等其他操作,可能需要使用其他方法。
以上是几种实现远程触发Jenkins构建并等待其完成的方法。用户可以根据自己的需求选择适合的方法。

正文完