问题描述
在使用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构建并等待其完成的方法。用户可以根据自己的需求选择适合的方法。