gpt4 book ai didi

jenkins - 如何从 Jenkins 管道中的另一个文件调用函数?

转载 作者:行者123 更新时间:2023-12-05 00:53:46 24 4
gpt4 key购买 nike

我想在一个单独的文件中收集管道通用的函数。我创建了目录结构:

vars/
...commonFunctions.groovy
pipeline.jenkinsfile
anotherPipeline.jenkinsfile

commonFunctions.groovy:

def buildDocker(def par, def par2) {
println("build docker...")
}

return this;

在 pipeline.jenkinsfile 我想调用 buildDocker 函数。我怎样才能做到这一点?我在管道中简单地尝试了 commonFunctions.buildDocker(par1, par2),但得到 MethodNotFound 错误。

更新:

pipeline.jenkinsfile 的相关部分:

    stage('Checkout') {
steps {
checkout([$class : 'GitSCM',
branches : [[name: gitCommit]],
userRemoteConfigs: [[credentialsId: gitCredId, url: gitUrl]]
])
}
}

stage("Build Docker") {
steps {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
script {
// here want to call function from another file
commonFunctions.buildDocker(par1, par2)
}
}
}
}

最佳答案

首先尝试像这样在 pipeline.jenkinsfile 中加载该文件并像这样使用它。所以你的答案是这样的

load("commonFunctions.groovy").buildDocker(par1, par2)

确保将 return this 添加到 groovy 脚本的末尾,在你的情况下是 commonFunctions.groovy 文件内

关于jenkins - 如何从 Jenkins 管道中的另一个文件调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67141045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com