如何添加'导出' Jenkins管道中的unix命令? 我有一个Jenkins'舞台'和'步骤'在其中。 export命令的语法是什么。我需要设置环境变量' PATH'使用export命令。
答案 0 :(得分:7)
您可以像这样更新$PATH
:
pipeline {
agent { label 'docker' }
stages {
stage ('build') {
steps {
// JENKINSHOME is just a name to help readability
withEnv(['PATH+JENKINSHOME=/home/jenkins/bin']) {
echo "PATH is: $PATH"
}
}
}
}
}
当我运行时,结果是:
[Pipeline] echo
PATH is: /home/jenkins/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
这个PATH+JENKINSHOME
语法到底是什么?引用blog at designhammer.com:
此:
/my/additional/path:$PATH
表示为:
PATH+ANYSTRING=/my/additional/path.
ANYSTRING
只是一个有助于提高可读性的名称。如果它对您的可读性没有帮助,则在您的视图中,您可以省略它。所以这是等价的:
PATH+=/my/additional/path
上述(withEnv
)允许您更新管道特定部分的$PATH
。要更新整个管道的$PATH
,您无法使用PATH+ANYSTRING
语法,但这可行:
pipeline {
agent { label 'docker' }
environment {
PATH = "/hot/new/bin:$PATH"
}
stages {
stage ('build') {
steps {
echo "PATH is: $PATH"
}
}
}
}
产生输出:
[Pipeline] echo
PATH is: /hot/new/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games