0

我正在尝试将我的管道拆分为多个文件,因此一个阶段内部有多个阶段,我想将其移动到vars我正在导入的 jenkins-shared-library 目录中的另一个文件中。

#!/usr/bin/env groovy
@Library('utils-library') _

def podLabel = "whatever"
def pod = "some yaml..."

pipeline {
    agent {
        kubernetes {
            label podLabel
            defaultContainer 'jnlp'
            yaml pod
        }
    }
    stages {
        stage('Nightly Tests') {           
            library externalNightlyStages
        }
        stage('Regular run') {
            steps {
                echo "bla!"
            }
        }
    }
}

在里面utils-library我有一个名为的文件vars/externalNightlyStages.groovy及其内容:

def call() {
    stages {
        stage("Spin up fresh EMR") {
            steps {
                echo "Spinning up an EMR cluster"
            }
        }
        stage("Run stage on EMR") {
            steps {
                echo "Run stage on EMR"
            }
        }
    }
}

所以理论上,在管道中调用这个库应该只是导入阶段并运行,就好像它们都在一个文件上一样。但是,这不起作用。

我尝试从不同的地方调用库,用script块环绕,用块环绕steps。什么都没有用。

有什么建议么?

4

0 回答 0