Jenkins中build步骤不开启wait/propagate时如何获取特定构建任务链接
Jenkins非阻塞触发构建获取链接方案
核心实现逻辑
Jenkins的build步骤即使用wait: false配置不阻塞当前流水线,也会返回触发生成的排队任务实例,你可以直接从该实例中提取链接信息,无需修改propagate、wait参数为true。
方案1(高版本插件适配,推荐)
Jenkins Pipeline Build插件v1.26及以上版本可直接读取实例的url属性:
// 捕获build步骤返回的排队任务实例 def triggeredJob = build job: 'project_1', propagate: false, wait: false // 拼接生成完整可访问的构建链接 def buildFullUrl = "${env.JENKINS_URL}${triggeredJob.url}" // 可直接打印写入日志或存入变量后续使用 echo "已触发project_1构建,访问地址:${buildFullUrl}"
如果任务还在排队阶段,访问该链接会自动跳转至排队详情页,任务正式启动后会自动重定向到实际构建详情页面,链接永久有效。
方案2(低版本插件兼容)
如果使用的Build插件版本较低不支持直接读取url属性,可通过排队任务ID手动拼接链接:
def triggeredJob = build job: 'project_1', propagate: false, wait: false // 获取排队任务唯一ID def queueId = triggeredJob.id // 拼接队列跳转链接,后续会自动重定向到实际构建页 def buildFullUrl = "${env.JENKINS_URL}queue/item/${queueId}/" echo "已触发project_1构建,访问地址:${buildFullUrl}"
内容的提问来源于stack exchange,提问作者jipot
相关产品推荐
相关产品推荐

