Jenkins when条件构建触发规则咨询及指定分支构建配置
问题解答
问题1:该when条件是否会在任意Git分支的标签推送(TAG_PUSH)时触发构建?
是的,当前的when条件只校验环境变量gitLabActionType的值是否为TAG_PUSH,完全不做分支校验。不管标签是基于哪个分支创建并推送的,只要是标签推送操作,这个release build阶段就会被触发。
问题2:如何配置为在特定Git分支(develop)的提交推送时触发构建?
需要调整when块的判断条件,核心是两个修改:
- 把触发动作从标签推送(
TAG_PUSH)改为普通提交推送对应的PUSH(GitLab触发Jenkins时,普通分支的提交推送会将gitLabActionType设为PUSH) - 新增分支校验规则,限定仅
develop分支的推送才触发
修改后的代码片段如下:
stage('release build') { agent { label 'label-name' } when { beforeAgent true environment name: "gitLabActionType", value: "PUSH" environment name: "gitLabBranch", value: "develop" // 也可以用Jenkins内置的分支变量简化写法:branch 'develop' } steps{ script{ // read artifactory info in env } script { // docker build } script { // docker push } } }
如果你的Jenkins环境中BRANCH_NAME变量更稳定,直接用branch 'develop'替换分支相关的environment判断也能达到同样效果。
内容的提问来源于stack exchange,提问作者overexchange
相关产品推荐
相关产品推荐

