Jenkins Env Vars来自文件

时间:2020-05-18 15:29:32

标签: jenkins jenkins-groovy

我想知道是否有人做了这样的事情:

environment {
    script {
        readYaml(file: 'customer_cfg.yaml').each { item ->
            item.key = item.value
        }
    }
}

or 

environment {
    readYaml(file: 'customer_cfg.yaml').each { item ->
        item.key = item.value
    }
}

我正在尝试读取yaml文件并将这些key=value对添加为全局env。我阶段的vars。 当然不行。

错误:“ item.key不是有效的标识符,不能用于环境变量。” 因此item.key不被视为env。 var name,我也尝试过evaluate("${item.key}")"${item.key}"=item.value

我使用的解决方案是通过以下步骤之一完成上述操作:

stage('Add Global Env Variables') {
    steps {
        script {
            config.configs.each { item ->
                env[item.key] = item.value
            }
        }
    }
}

谢谢

1 个答案:

答案 0 :(得分:0)

理论上,environment仅支持sh,例如:

BRANCH_NAME = sh(
  script: 'echo "${GIT_BRANCH}" | sed "s|/|_|g"',
  returnStdout: true
).trim()

如果您想从YAML中读取某些内容,则应使用stage进行修改,就像您的示例一样。