在Cloudbees Jenkins文件夹中设置环境变量

时间:2013-12-02 17:23:20

标签: jenkins cloudbees

重新安装Jenkins和Cloudbees Free Enterprise插件后,我的Jenkins文件夹中设置的环境变量停止工作并从配置UI中消失。但是,它仍然存在于文件系统的config.xml中,如:

<properties>
 <com.cloudbees.hudson.plugins.folder.properties.EnvVarsFolderProperty>

我现在应该如何创建适用于整个文件夹的环境变量?

3 个答案:

答案 0 :(得分:3)

Folders Plus插件的功能已moved,需要Jenkins Enterprise付费许可证。

答案 1 :(得分:0)

经过深思熟虑后,由于我不得不暂时处理这个需求,我已经做了一些工作来定义我自己的插件来满足这个需求。它允许您为文件夹定义一个String属性列表,然后由其中的作业继承,从而无需为文件夹中的所有作业反复指定相同的属性。

https://github.com/mig82/folder-properties-plugin

我希望这对其他人有用。一旦我有时间更好地记录它并编写一些测试脚本,我打算将此提交给Jenkins CI Org。

答案 2 :(得分:0)

@ Mig82提供了很好的解决方案。但是,它有一个局限性,那就是它提供的文件夹环境变量在自由式构建的SCM部分以及其他一些部分中不可用。

我发现我可以使用groovy片段来解决这个问题:

  1. 在自由式工作中,启用“为 运行”部分。
  2. 在“准备运行环境”部分中,添加 将以下代码添加到“评估的Groovy脚本”字段中:

    import com.mig82.folders.wrappers.ParentFolderBuildWrapper
    import jenkins.tasks.SimpleBuildWrapper

    // Create a temporary Context object into which we can load the folder properties.
    myContext = new SimpleBuildWrapper.Context()

    // Create an object of the class "ParentFolderBuildWrapper".
    // This is the class at the heart of the Folder Properties plugin,
    // and it implements the code that gets the properties from the folder.
    parentFolderBuildWrapper = new ParentFolderBuildWrapper()

    // Load the folder properties into our Context object.
    parentFolderBuildWrapper.loadFolderProperties(currentJob, myContext)

    // Return the map containing the properties.
    return myContext.getEnv()