Jenkins管道中的Export命令

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

如何在Jenkins管道中添加“export”unix命令?
我有一个詹金斯的“舞台”和“台阶”。导出命令的语法是什么。我需要使用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