如何将构建参数/ env变量传递到Powershell管道

时间:2019-03-29 14:16:46

标签: powershell jenkins-pipeline

我有一个定义管道的jenkinsfile。在这里,我声明了一个调用powerhell管道插件的步骤,并且尝试使用jenkins环境变量以及build参数都没有成功。请参阅下面的步骤定义:

stage('publish') {
      steps {
            powershell returnStatus: true, script: '$(env:WORKSPACE)\\ci\\scripts\\publish-$(BRANCH).ps1'
      }
    }

任何帮助/见解将不胜感激。

2 个答案:

答案 0 :(得分:0)

  • 要嵌入 Jenkins 表达式或变量(例如$(BRANCH)),必须对脚本进行"..."-双引号(双引号); '...'(单引号)包含文字字符串。
  • 要确保将{em> PowerShell 表达式或(环境)变量引用的$前缀令牌传递到PowerShell(例如$env:WORKSPACE),则必须转义{ {1}}为$

因此:

\$

答案 1 :(得分:0)

管道有两个问题:

  1. 单引号不会在字符串内扩展变量
  2. 要访问变量,您要使用$ {var}而不是$(var)
  3. 没错,但是您不需要使用env.WORKSPACE,只需WORKSPACE就足够了

请尝试一下,您可以在powershell命令之前添加echo,以便查看要执行的操作。

stage('publish') {
  steps {
        echo "${WORKSPACE}\\ci\\scripts\\publish-${BRANCH}.ps1"
        powershell returnStatus: true, script: ${WORKSPACE}\\ci\\scripts\\publish-${BRANCH}.ps1"
  }
}
相关问题