如何有条件地在环境指令中传递凭据绑定

red*_*888 1 jenkins jenkins-plugins jenkins-pipeline

这不起作用:

environment {
    Pass = "${blah == 'yes' ? credentials('somecred') : credentials('otherCred')}"
Run Code Online (Sandbox Code Playgroud)

我可以直接将 env var 设置为 credentials() ,但是当尝试在字符串插值器中使用三元语句时,如上所示,它不会传递实际凭据,而是传递字符串化对象。

在 environment{} 指令中是否有单行执行此操作?

Jenkins 允许您将字符串内插器潜入环境块中以评估代码,我可以在此处使用另一种 gr​​oovy 构造吗?

red*_*888 5

jenkins 管道 dsl 让我哭泣

# Define outside of pipeline block
def MYENV_VAR = somevar == 'yes' ? 'cred-id-1' : 'cred-id-2'

pipeline {
    agent any

    environment {
            MYENV = credentials("${MYENV_VAR}")
Run Code Online (Sandbox Code Playgroud)