rai*_*ner 8 jenkins jenkins-workflow jenkins-pipeline
我们正在考虑将Jenkins Pipeline插件用于一个相当复杂的项目,该项目包含几个需要在合并之前使用不同工具(在不同机器上)构建的交付.尽管如此,使用单个数据进行完整构建似乎很容易Jenkinsfile,我喜欢自动发现管道附带的git分支.
但是,此时,我们为每个交付都有工作,并使用基于构建流程的"元"工作来协调各个工作.关于这一点的好处是,如果只做了很小的改动,它还允许只启动一个单独的工作,只是为了看看这个交付是否仍在编译.
为了模仿这一点,我想到了一些想法:
Jenkinsfiles进行交付,load并将它们放在顶层Jenkinsfile; 似乎Multibranch Pipeline作业不允许配置Jenkinsfile使用(https://issues.jenkins-ci.org/browse/JENKINS-35415),因此,为单个交付创建作业仍然是开放的.if为所有交付提供s,Jenkinsfile以便能够选择应该构建哪些.但是,这会在一个管道中混合不同的构建类型,并且至少会弄乱构建时间的估计.那些可行的选择,还是有更好的选择?
您可以做的是编写一个流水线脚本,该脚本在单个阶段具有"if"保护,如下所示:
stage "s1"
if (theStage in ["s1","all"]) {
sleep 2
}
stage "s2"
if (theStage in ["s2", "all"]) {
sleep 2
}
stage "s3"
if (theStage in ["s3", "all"]) {
sleep 2
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以创建一个使用此脚本的"主"作业,并通过将参数"theStage"设置为"all"来一次运行所有阶段.这项工作将在所有阶段一次运行时收集统计数据,并为您提供有用的估算时间.
此外,您可以创建一个使用此脚本的"部分运行"作业,并使用您要运行的阶段进行参数化.但估计不会很有用.
请注意,我将舞台本身放在主脚本中,并将执行代码放入条件中,如Martin Ba所建议的那样.这可确保作业的可视化更可靠
| 归档时间: |
|
| 查看次数: |
6297 次 |
| 最近记录: |