如何在Jenkinsfile中连接字符串?

cir*_*rpo 7 jenkins jenkinsfile

我试图在Jenkinsfile中连接一些字符串,但它不起作用:

def versionFromFile = readFile("./version")
def version = versionFromFile + env.BUILD_NUMBER
Run Code Online (Sandbox Code Playgroud)

我也尝试了其他解决方案:

sh "echo version: ${version}-${env.BUILD_NUMBER}"
sh "git tag ${version}-${env.BUILD_NUMBER}"
Run Code Online (Sandbox Code Playgroud)

但不评估/打印$ {env.BUILD_NUMBER}

如果我做

sh "git tag 1.0.1-${env.BUILD_NUMBER}"
Run Code Online (Sandbox Code Playgroud)

$ {env.BUILD_NUMBER}被评估/打印

我仍然没有得到脚本语言在Jenkins文件中如何工作,文档是关于DSL的,这是否意味着你不能做常见的脚本操作?

mba*_*ero 6

Jenkinsfiles 遵循与 Groovy 语言相同的语法(有一些例外)。请参阅Jenkins 语法

在 Jenkinsfile 中连接字符串的方法是使用加号(“+”)。例如:

VAR1 = "THIS IS"
VAR2 = 4
RESULT = VAR1 + " " + VAR2 + " " + PARAM

echo "$RESULT"
Run Code Online (Sandbox Code Playgroud)

那么如果PARAM是一个值为“YOU”的输入参数,则打印输出为:

“这是4个你”

然后关于环境变量的问题${env.BUILD_NUMBER}尝试简单地使用BUILD_NUMBER


Mar*_*ley 5

这行得通吗?

versionFromFile = readFile("./version")
sh "git tag ${versionFromFile}-${env.BUILD_NUMBER}"
Run Code Online (Sandbox Code Playgroud)

假设 versionFromFile 是从文件中正确读取的。要测试这不是您的问题,您可以像这样定义它

versionFromFile = "99"
sh "git tag ${versionFromFile}-${env.BUILD_NUMBER}"
Run Code Online (Sandbox Code Playgroud)