Jenkins管道中的环境变量

Akk*_*kki 34 jenkins jenkins-pipeline

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

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

bad*_*err 48

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

从文档:

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

env.MYTOOL_VERSION = '1.33'
node {
  sh '/usr/local/mytool-$MYTOOL_VERSION/bin/start'
}
Run Code Online (Sandbox Code Playgroud)

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

对于其余文档,请单击任何管道作业中的"管道语法"链接 在此输入图像描述


sor*_*rin 38

为了避免更改后的副作用问题env,特别是使用多个节点,最好设置临时上下文.

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

 withEnv(['MYTOOL_HOME=/usr/local/mytool']) {
    sh '$MYTOOL_HOME/bin/start'
 }
Run Code Online (Sandbox Code Playgroud)

在命令执行后,此方法不会中毒env.