您可以更新$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
句法?引用自一个博客在 designhammer.com https://designhammer.com/blog/building-groovy-pipeline:
This:
/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