【发布时间】:2018-02-10 18:35:22
【问题描述】:
我有一个在许多项目中使用的标准化声明性 Jenkinsfile。我已将整个管道移至库中,因此我的 Jenkinsfile 如下所示:
@Library('default_jenkins_libs') _
default_pipeline();
库(var/default_pipeline.groovy):
def call() {
pipeline {
node { <snip> }
stages {
stage('Lint and style') {
steps {
//stuff
}
}
//etc...
stage('Post-build') {
steps {
PostBuildStep();
}
}
}
}
def PostBuildStep() {
echo 'Running default post-build step';
}
我希望能够向 Jenkinsfile 中的实际管道代码添加定义,如下所示:
@Library('default_jenkins_libs') _
def PostBuildStep() {
echo 'Running customized post-build step'
//do custom stuff
}
default_pipeline();
我无法弄清楚如何做到这一点。我怀疑这可以通过调用由 Jenkinsfile 表示的对象并调用其“PostBuildStep()”的库来实现,可能类似于“parent.PostBuildStep()”,但我没有类结构/命名参考。
有什么建议吗?底线是,我想要一个标准化的管道,它可以通过库更改来整体更改,但仍然对使用它的作业进行一些控制。
TIA
【问题讨论】:
标签: jenkins groovy declarative