基本上我希望我的Jenkinsfile看起来像这样:
@Library('my-descriptive-pipline') _
myPipeline('arg1','arg2','arg3')
然后我的共享库(/vars/descriptivePipeline.groovy)看起来像这样:
pipeline {
agent any
options {
skipDefaultCheckout()
}
environment {
}
stages {
stage('stageA') {
steps {
... Do something with arg1, arg2 or arg3
}
}
stage('stageB') {
steps {
... Do something with arg1, arg2 or arg3
}
}
....
我想集中管道配置,所以我不必担心Jenkinsfile蔓延。这是否可以使用声明性管道?
答案 0 :(得分:7)
答案 1 :(得分:4)
正如shared libraries plugin documentation所述:
定义声明性管道
从2017年9月下旬发布的Declarative 1.2开始,您 也可以在共享库中定义声明性管道。
这是相当新的,因此可能仍然存在一些错误,但它应该有效。不要忘记升级共享库和声明性插件。
答案 2 :(得分:1)
不,目前无法共享完整的声明性管道。脚本管道可以 :
开始引用: “声明性选项很不错,但你将失去通过共享库提取可重用代码的能力。例如,你还不能这样做:
MyCompanyStandardPipeline {
... // which will plugin standard sections...
}
最终引用Cuong Tran的jenkins users mailing list。
您可以将共享库与Jenkinsfile变量一起使用,因为链接线程上的下一个回复指出,但只有脚本才可以共享完整的管道。
答案 3 :(得分:0)
不建议将整个管道都放在共享库中...因为开发人员永远不会知道幕后发生的事情...声明式的整个目标都会消失..我建议创建一个可重用的类或脚本让开发人员撰写管道