如何在Jenkins管道中使用EnvInject和ConfigFileProvider?

时间:2017-09-19 19:27:24

标签: jenkins jenkins-plugins jenkins-pipeline

我想将configFileProvider与envInject结合使用,将托管文件加载到env变量中。

托管文件内容:

someEmail:"someemail@somewhere.com"

configFileProvidor创建一个地图(下面的道具):

node {
    configFileProvider(
        [configFile(fileId: 'my-managed-file', variable: 'job_settings')]) {
        props = readProperties file: job_settings
        echo "${props}"
    }
}

输出:

[someEmail:"someemail@somewhere.com"]

如何使用EnvInject将此地图导入env变种?

我尝试了以下内容:

load props

这导致org.kohsuke.stapler.NoStaplerConstructorException: There's no @DataBoundConstructor on any constructor of class java.lang.String

我也尝试直接加载job_settings对象,这不会导致错误,但变量不会包含在env中。

node {
    configFileProvider(
        [configFile(fileId: 'my-managed-file', variable: 'job_settings')]) {
        load job_settings
    }
}

1 个答案:

答案 0 :(得分:0)

我有一个使用targetLocation的工作方法:

node {
    configFileProvider(
        [configFile(fileId: 'my-managed-file', targetLocation: '/path/to/job_settings_dir')]) {
        load '/path/to/job_settings_dir/my-managed-file'
    }
}