如何连接 Jenkins 文件中的变量

How can I concatenate variables in Jenkins file

我有一个 Jenkinsfile,我想在执行构建期间从文件中加载变量,我还想将变量连接成一行并打印出来。

pipeline {
    agent any
    stages {
        stage("foo") {
            steps {
                script {
                    env.name = readFile 'name.txt' 
                    env.tag = readFile 'tag.txt'
                }
                echo "${env.name}:${env.tag}"
            }
        }
    }
}

name.txt 包含 Uzodimma
path.txt 包含最新的

当我运行管道时,我得到
乌佐迪玛
:最新

我预计
Uzodimma:latest

我可以在 Jenkinsfile 中执行此操作吗?

这里的问题是您的文件中有换行符,因此它们作为字符串的一部分分配给您的变量。您可以使用 trim 方法删除换行符,因为 readFile returns a String:

env.name = readFile('name.txt').trim()
env.tag = readFile('tag.txt').trim()

并且返回的标准输出将如您所愿。