当前位置:优学网  >  在线题库

在Jenkins脚本中,可以在条件表达式内绑定凭据吗?

发表时间:2022-07-29 00:10:01 阅读:106

我试着运行一个脚本来决定Jenkins步骤是否运行.这个脚本需要凭据,我们可以通过调用withCredentials来访问它.

下面是一个稍微简化的示例:

stage('Sample test stage') {
  when {
    expression {
      withCredentials([usernamePassword(credentialsId: 'MY_CREDENTIALS_ID', usernameVariable: 'MY_USERNAME', passwordVariable: 'MY_TOKEN')]) {
        return sh([returnStdout: true, script: 'node bin/my-script ${MY_TOKEN}']).trim().startsWith('success')
      }
    }
  }
  steps {
    echo 'I should only run when the script passes'
  }
}

然而,这不起作用.Jenkins返回错误:"语法错误:错误的替换."

我假设这取决于试图传递凭据时使用的语法.我尝试了几种变体,例如返回"withCredentials"和将整个表达式包装在"withCredentials"中,但两者都有相当大的错误.

我找不到这方面的任何文件,这让我怀疑这是否违法

🎖️ 优质答案
  • 我觉得自己很傻.Groovy中的`"和``之间存在差异.在单引号中,只有Bash替换可以工作.在双引号中,Groovy和Bash替换都可以工作.

  • 相关问题