如何使用 Jenkinsfile 将 BRANCH_NAME 传递给 jenkins 作业
How to use Jenkinsfile to pass BRANCH_NAME to a jenkins job
所以我有一个 jenkins 的工作,像这样检查一个 svn 仓库 remote: "svn://xyz-repo/svn/xyzclientjs/$BRANCH_NAME"]],
我通过此 svn 存储库中存在的 Jenkinsfile 传递此 $BRANCH_NAME。
现在在 Jenkinsfile 中,我正在这样做 -
node 'xyz-169' {
checkout scm
def BRANCH_NAME = sh "svn info | grep -Po 'Relative URL: \^/\K.*'"
def BRANCH_REV = sh "svn info --show-item revision"
stage('Build A') {
build job: 'xyzclientjs-webui-test', propagate: true, parameters:
[
[$class: 'StringParameterValue', name: 'BRANCH_NAME', value: $env.BRANCH_NAME],
[$class: 'StringParameterValue', name: 'BRANCH_REV', value: $env.BRANCH_REV],
]
但是当我 运行 在 jenkins 上工作时,我得到以下错误
Error while checking out xyzclientjs branch from SVN
10:26:05 [Pipeline] error
10:26:05 [Pipeline] }
10:26:05 [Pipeline] // stage
10:26:05 [Pipeline] }
10:26:05 [Pipeline] // node
10:26:05 [Pipeline] End of Pipeline
10:26:05 java.lang.ClassCastException: org.jenkinsci.plugins.workflow.steps.ErrorStep.message expects class java.lang.String but received class groovy.lang.MissingPropertyException
有没有办法做到这一点。请帮助任何建议,我们将不胜感激。
您应该在此处查看示例以正确获取 sh 步骤的输出:
例如(由于缺少SVN未测试):
def BRANCH_NAME = sh (
script: "svn info | grep -Po 'Relative URL: \^/\K.*'",
returnStdout: true
).trim()
所以我有一个 jenkins 的工作,像这样检查一个 svn 仓库 remote: "svn://xyz-repo/svn/xyzclientjs/$BRANCH_NAME"]],
我通过此 svn 存储库中存在的 Jenkinsfile 传递此 $BRANCH_NAME。
现在在 Jenkinsfile 中,我正在这样做 -
node 'xyz-169' {
checkout scm
def BRANCH_NAME = sh "svn info | grep -Po 'Relative URL: \^/\K.*'"
def BRANCH_REV = sh "svn info --show-item revision"
stage('Build A') {
build job: 'xyzclientjs-webui-test', propagate: true, parameters:
[
[$class: 'StringParameterValue', name: 'BRANCH_NAME', value: $env.BRANCH_NAME],
[$class: 'StringParameterValue', name: 'BRANCH_REV', value: $env.BRANCH_REV],
]
但是当我 运行 在 jenkins 上工作时,我得到以下错误
Error while checking out xyzclientjs branch from SVN
10:26:05 [Pipeline] error
10:26:05 [Pipeline] }
10:26:05 [Pipeline] // stage
10:26:05 [Pipeline] }
10:26:05 [Pipeline] // node
10:26:05 [Pipeline] End of Pipeline
10:26:05 java.lang.ClassCastException: org.jenkinsci.plugins.workflow.steps.ErrorStep.message expects class java.lang.String but received class groovy.lang.MissingPropertyException
有没有办法做到这一点。请帮助任何建议,我们将不胜感激。
您应该在此处查看示例以正确获取 sh 步骤的输出:
例如(由于缺少SVN未测试):
def BRANCH_NAME = sh (
script: "svn info | grep -Po 'Relative URL: \^/\K.*'",
returnStdout: true
).trim()