Jenkins管道中的Export命令
如何在Jenkins管道中添加“export”unix命令?Jenkins管道中的Export命令,jenkins,path,export,jenkins-pipeline,Jenkins,Path,Export,Jenkins Pipeline,如何在Jenkins管道中添加“export”unix命令? 我有一个詹金斯的“舞台”和“台阶”。导出命令的语法是什么。我需要使用export命令设置环境变量“PATH” 您可以像这样更新$PATH: pipeline { agent { label 'docker' } stages { stage ('build') { steps { // JENKINSHOME is just a name to help readability
我有一个詹金斯的“舞台”和“台阶”。导出命令的语法是什么。我需要使用export命令设置环境变量“PATH” 您可以像这样更新
$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
语法到底是什么?引述
这:
具体表述如下:
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
在docker容器中运行时,需要转义
$PATH
,否则它将在Jenkins中展开,而不是在容器中展开。在步骤
块中使用时。在阶段
环境
块中设置路径
无效。我还不知道为什么。如果我在管道
的主环境
块中设置它,那么整个管道都会受到影响,我不需要这样做。我需要这个只是为了测试阶段。我在steps
中的sh
块中得到了export PATH=foo:\$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