请告诉我,我可以将一个带有声明式管道的 Jenkinsfile 集成到另一个文件中吗?
这个想法是并行运行几个进程,这些进程被划分为不同的 jenkinsfiles。
stage('run-parallel-branches') {
steps {
parallel(
a: {
echo "call Jenkinsfile 1"
},
b: {
echo "call Jenkinsfile 2"
}
)
}
}
感谢您的帮助。
您有两种解决方案:
-
如果您的目标是避免重复代码,则可以使用共享库并将在
Jenkinsfile1
和Jenkinsfile2
中完成的工作提取到库中,然后改为调用此库。 -
你的两个 Jenkinsfile 可以有它们的专用作业,你会在并行阶段调用它们(它将等待并传播错误(:
build 'myJob1'
&build 'myJob2'
但是,这种方法的问题在于,调用的作业不一定与父作业具有相同的 SCM 提交(如果同时输入提交(。