当建立工作与实施的提升周期,即开发->质量保证->性能->生产。
将这个循环迁移到管道中的正确的方法是什么?调用上述每个作业看起来相当干净\结构化,但是,我如何查询构建ID (以便能够调用部署作业)?还是我完全误解了管道的概念?
发布于 2016-08-26 08:07:20
您可以考虑多种解决方案:
按顺序触发每个作业
只需使用build
步骤顺序调用每个作业:
node() {
stage "Dev"
build job: 'Dev'
stage "QA"
build job: 'QA'
// Your other promotion cycles...
}
它很容易使用,而且可能已经与您的实际解决方案兼容了,但是我不太喜欢这个解决方案,因为您的管道阶段的实际输出(Dev,QA等)。将真正处于专用作业(Dev作业,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阶段失败了,您就不想再继续了)。
请注意,如果需要,这两种解决方案都应该允许您并行启动晋升周期,并将参数传递给您的职务或功能。
https://stackoverflow.com/questions/39121905
复制相似问题