Jenkins管道中的环境变量

时间:2017-01-12 03:55:55

标签: jenkins jenkins-pipeline

是否有可用于获取Jenkins管道标题的环境变量?

我知道我们可以使用$JOB_NAME获得自由式作业的头衔, 但是有什么东西可以用来获取Pipeline名称吗?

2 个答案:

答案 0 :(得分:47)

您可以使用相同的名称(例如JOB_NAMEenv.JOB_NAME)从groovy访问相同的环境变量。

来自文档:

  

环境变量可以从Groovy代码中以env.VARNAME或VARNAME的形式访问。您也可以写入此类属性(仅使用env。前缀):

env.MYTOOL_VERSION = '1.33'
node {
  sh '/usr/local/mytool-$MYTOOL_VERSION/bin/start'
}
     

这些定义也可以在构建期间或完成后通过REST API获得,也可以使用构建步骤从上游管道构建获得。

对于其余文档,请单击任何管道作业中的“管道语法”链接 enter image description here

答案 1 :(得分:35)

为了避免在更改env后出现副作用问题,尤其是使用多个节点时,最好设置临时上下文。

改变环境的一种安全方法是:

 withEnv(['MYTOOL_HOME=/usr/local/mytool']) {
    sh '$MYTOOL_HOME/bin/start'
 }

这种方法在命令执行后不会使env中毒。