小编Mik*_*nek的帖子

如何在本地覆盖 Jenkinsfile 库函数?

我有一个在许多项目中使用的标准化声明性 Jenkinsfile。我已将整个管道移动到一个库中,因此我的 Jenkinsfile 如下所示:

@Library('default_jenkins_libs') _
default_pipeline();
Run Code Online (Sandbox Code Playgroud)

库(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';
}
Run Code Online (Sandbox Code Playgroud)

我希望能够向 Jenkinsfile 中的实际管道代码添加定义,如下所示:

@Library('default_jenkins_libs') _

def PostBuildStep() {
  echo 'Running customized post-build step'
  //do custom stuff
}

default_pipeline();
Run Code Online (Sandbox Code Playgroud)

我一直无法弄清楚如何做到这一点。我怀疑这可以通过库调用 Jenkinsfile 表示的对象并调用它的“PostBuildStep()”来实现,可能像“parent.PostBuildStep()”,但我没有类结构/命名参考。

有什么建议?最重要的是,我想要一个标准化的管道,它可以通过库的更改来整体更改,但仍然可以对使用它的作业进行一些控制。

TIA

groovy declarative jenkins

6
推荐指数
1
解决办法
5207
查看次数

标签 统计

declarative ×1

groovy ×1

jenkins ×1