And*_*ich 1 continuous-integration jenkins jenkins-pipeline
使用multibranch管道我想触发一个稍微不同的构建和部署过程,具体取决于哪个git分支触发了构建.
我能想到的两种方法是:1)在每个分支中使用不同的jenkins文件2)在jenkins文件中使用一系列{branch'X'}块
第一种方法意味着在合并分支时我需要小心,我知道我会忘记在某些时候.
第二种方法非常混乱,但确实意味着我只能使用一个Jenkins文件.
我无法相信没有比这两种方法更好的方法.
Mua*_*tik 11
即使我不是DevOps专家,我也可以建议when在管道中使用条件,以便只有when满足条件才会触发某些阶段.
pipeline {
triggers {
# triggered by changes in every branch
}
stages {
stage('first-stage'){
when { anyOf { branch 'feature-branch/*'; branch 'master' } }
steps{
....
}
}
stage('second-stage'){
when {
not {
branch 'release/*'
}
not {
branch 'staging'
}
}
steps{
....
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用job-builder插件创建多个作业模板.然后,您可以创建具有不同分支参数的不同项目,从而实现作业模板 这有点复杂,我会选择上面的"条件管道".
此链接也可能有所帮助:https: //jenkins.io/blog/2017/01/19/converting-conditional-to-pipeline/
| 归档时间: |
|
| 查看次数: |
4532 次 |
| 最近记录: |