作者:1234 | 来源:互联网 | 2022-12-28 13:19
我有一个像下面的詹金斯工作习惯脚本。我希望从参数值中获取Github分支。
Groovy脚本:
git_url = "git@github.deere.com:ABC/XYZ.git" jenkins_node = "master"
freeStyleJob('myjob') {
logRotator(numToKeep = 100)
parameters { stringParam("GIT_BRANCH", "master" , "master cert dev") }
label(jenkins_node)
scm {
git {
remote { url(git_url) }
branch($GIT_BRANCH)
extensions { }
}
}
Szymon Stepn..
5
您必须将$GIT_BRANCH
变量放在单引号中,以便作业DSL脚本不会解析该变量。将脚本粘贴到此Job DSL游乐场应用程序中,您将得到一个例外:
javaposse.jobdsl.dsl.DslScriptException: (script, line 12) No such property: $GIT_BRANCH for class: javaposse.jobdsl.dsl.helpers.scm.GitContext
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScriptEngine(AbstractDslScriptLoader.groovy:112)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:59)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader$runScripts$0.callCurrent(Unknown Source)
但是,如果您添加单引号:
branch('$GIT_BRANCH')
那么您将正确生成作业XML文件:
false
GIT_BRANCH
master
master cert dev
false
false
false
false
false
100
-1
-1
-1
master
git@github.deere.com:ABC/XYZ.git
$GIT_BRANCH
2
false
Default
这是我在沙箱中使用的工作DSL:
git_url = "git@github.deere.com:ABC/XYZ.git"
jenkins_node = "master"
freeStyleJob('myjob') {
logRotator(numToKeep = 100)
parameters {
stringParam("GIT_BRANCH", "master" , "master cert dev")
}
label(jenkins_node)
scm {
git {
remote { url(git_url) }
branch('$GIT_BRANCH')
extensions { }
}
}
}
现在,当您运行从该DSL生成的作业时,它将要求您提供GIT_BRANCH参数,并且您传递的值将用于设置分支。
1> Szymon Stepn..:
您必须将$GIT_BRANCH
变量放在单引号中,以便作业DSL脚本不会解析该变量。将脚本粘贴到此Job DSL游乐场应用程序中,您将得到一个例外:
javaposse.jobdsl.dsl.DslScriptException: (script, line 12) No such property: $GIT_BRANCH for class: javaposse.jobdsl.dsl.helpers.scm.GitContext
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScriptEngine(AbstractDslScriptLoader.groovy:112)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:59)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
at javaposse.jobdsl.dsl.AbstractDslScriptLoader$runScripts$0.callCurrent(Unknown Source)
但是,如果您添加单引号:
branch('$GIT_BRANCH')
那么您将正确生成作业XML文件:
false
GIT_BRANCH
master
master cert dev
false
false
false
false
false
100
-1
-1
-1
master
git@github.deere.com:ABC/XYZ.git
$GIT_BRANCH
2
false
Default
这是我在沙箱中使用的工作DSL:
git_url = "git@github.deere.com:ABC/XYZ.git"
jenkins_node = "master"
freeStyleJob('myjob') {
logRotator(numToKeep = 100)
parameters {
stringParam("GIT_BRANCH", "master" , "master cert dev")
}
label(jenkins_node)
scm {
git {
remote { url(git_url) }
branch('$GIT_BRANCH')
extensions { }
}
}
}
现在,当您运行从该DSL生成的作业时,它将要求您提供GIT_BRANCH参数,并且您传递的值将用于设置分支。