我有一个 Jenkinsfile,其中需要通过连接变量和字符串来准备 zip 文件路径。我尝试了下面的代码片段,但它分成多行,如下所示:
13:14:02 Zip File Path: /apps/external/5/jenkins-node-home/workspace/APPL004316/APIN004621
13:14:02 /my_project
13:14:02 -0.1.29
13:14:02 -SNAPSHOT.zip
期望输出为:
/apps/external/5/jenkins-node-home/workspace/APPL004316/APIN004621/my_project-0.1.29-SNAPSHOT.zip
片段:
stage('Zip') {
steps {
script {
env.VERSION = sh script: 'grep -m 1 version_number ${WORKSPACE}/ComponentInfo.toml | tr -s \' \' | tr -d \'"\' | tr -d "\'" | cut -d\' \' -f3', returnStdout: true
echo "Version: ${env.VERSION}"
env.PROJECT = sh script: 'echo "${WORKSPACE}"|rev|cut -d\'/\' -f1|cut -d\'@\' -f2|rev', returnStdout: true
echo "Project: ${env.PROJECT}"
env.BASEPATH = sh script: 'echo ${WORKSPACE%/*}' , returnStdout: true
env.ZIP_FILEPATH = "${env.BASEPATH}/${env.PROJECT}-${env.VERSION}-SNAPSHOT.zip"
echo "Zip File Path: ${env.ZIP_FILEPATH}"
}
}
}
我也尝试过使用“+”,但得到了相同的结果:
env.ZIP_FILEPATH = env.BASEPATH+"/"+env.PROJECT+"-"+env.VERSION+"-SNAPSHOT.zip"
正如 @NoamHelmer 所说,添加
.trim()
有效。
env.ZIP_FILEPATH = "${env.BASEPATH.trim()}/${env.PROJECT.trim()}-${env.VERSION.trim()}-SNAPSHOT.zip"
谢谢诺姆