【发布时间】:2017-02-26 15:13:49
【问题描述】:
我将我的 Jenkins 流水线作为 groovy 脚本存储在 Jenkins 的共享库中。我想为不同的工作使用不同的版本。我称为sample_jenkins.groovy 的共享库脚本如下:
def call(body) {
// evaluate the body block, and collect configuration into the object
def config = [:]
body.resolveStrategy = Closure.DELEGATE_FIRST
body.delegate = config
body()
// now build, based on the configuration provided
node {
stage ('First Stage'){
echo "This is first stage"
}
stage('Second Stage'){
echo "This is second stage"
}
}
}
我已将 sharedLib 存储库中的不同版本标记为 v1.0 和 v2.0。如果我想使用v1.0,我已经引用它如下@Library注释如下。
在我的工作中,我通过调用 groovy 脚本访问了共享库,并在其上方使用了注释 @Library('project-examples@v1.0'),如下图所示:
我在运行作业时遇到错误。 这是我看到的错误。
当我使用@Library('project-examples@master') 时,我得到了同样的错误。我在某个地方出错了吗?如果不是这种情况,我们应该如何使用版本控制?我如何告诉 Jenkins 使用哪个版本?谁能给我一个清楚的了解如何使用 jenkins 共享库中的版本?
【问题讨论】:
-
“我无法执行此操作”是什么意思?究竟会发生什么?您是否已确认“master”至少可以让您获得 master 头上的库?
-
我在运行作业时遇到错误。是的,我也尝试过 master 并得到了同样的错误。
-
这是我得到的错误:WorkflowScript: 2: unexpected token: my_jenkinsfile @ line 2, column 1. my_jenkinsfile{ ^ 1 error at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector .java:310) 在 org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:150) 在 org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:120)
-
请发布您正在尝试执行的操作的更完整版本,包括您的共享库,并完成错误诊断。这显然与共享库版本无关。
-
我已经编辑了更多细节的帖子。
标签: jenkins groovy jenkins-pipeline