在构建具有实施的促销周期的工作时,即Dev-> QA-> Performance-> Production。
将此周期迁移到管道中的正确方法是什么?它看起来很干净\结构化,可以调用上面提到的每个作业,但是,如何查询构建ID(能够调用部署作业)?或者我完全误解了管道概念?
答案 0 :(得分:0)
最好在不同的管道阶段调用每个构建。像这样:
stage "Dev"
node{
build job: 'Dev', parameters:
[
[$class: 'StringParameterValue', name: 'param', value: "param"],
];
}
stage "QA"
node{
build job: 'QA'
}
etc...
要循环此过程,您可以在Groovy中使用重试选项或无限循环
答案 1 :(得分:0)
您可以考虑多种解决方案:
使用build
步骤依次调用每个作业:
node() {
stage "Dev"
build job: 'Dev'
stage "QA"
build job: 'QA'
// Your other promotion cycles...
}
它易于使用,可能已经符合您的实际解决方案,但我不是这个解决方案的忠实粉丝,因为您的管道阶段(Dev,QA等)的实际输出真的会在专门的工作(开发工作,QA工作),而不是直接在你的管道内。您的管道将是一个空壳,只是调用其他工作......
为每个促销周期定义一个管道功能(最好在外部文件中),然后按顺序调用每个功能。示例:
node {
git 'http://urlToYourGit/projectContainingYourFunctions'
cycles = load 'promotions-cycles.groovy'
stage "Dev"
cycles.dev()
stage "QA"
cycles.qa()
// Your other promotion cycles calls...
}
最大的优势是您的促销周期代码在您的Git存储库中提交,并且您的所有阶段输出实际上是管道输出的一部分,这对于轻松调试非常有用。 此外,您可以根据功能的成功/失败轻松应用条件(例如,如果您的QA阶段失败,您不想再继续)。
请注意,如果需要,这两种解决方案都允许您并行启动促销周期,并将参数传递给您的工作或功能。