如何在jenkins config.xml

时间:2019-08-26 13:01:18

标签: jenkins docker-swarm

我正在docker群上运行几个jenkins服务,并且我想在config.xml的某些部分使用环境变量。例如。在我的docker服务.yml文件中,我在环境变量JENKINS_WELCOME_MESSAGE中设置了服务特定的欢迎消息,我想在jenkins config.xml中使用该消息:

<systemMessage>${JENKINS_WELCOME_MESSAGE}</systemMessage>

另一个示例是jenkins服务中我的docker-swarm-plugin的配置。它需要知道用于从属代理jar下载的Jenkins URL,所以我想设置一个环境变量JENKINS_MASTER_URL并在config.xml的docker-swarm-plugin部分中使用它:

<clouds>
    <org.jenkinsci.plugins.docker.swarm.DockerSwarmCloud plugin="docker-swarm@1.6">
      <name>Docker Swarm</name>
      <jenkinsUrl>${JENKINS_MASTER_URL}</jenkinsUrl>

这可能吗?

在寻找解决方案时,我发现了这个问题(Using variables in config.xml)。对我来说,这个问题听起来像我的问题,但答案更多是关于在作业执行中使用环境变量。

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我想让被检出的存储库使用环境变量,以便我可以在 Jenkins 服务器设置时动态设置它。我继续尝试,它确实有效。

我有如下的 Jenkins 作业配置。

<scm class="hudson.plugins.git.GitSCM" plugin="git@4.7.2">
    <configVersion>2</configVersion>
    <userRemoteConfigs>
        <hudson.plugins.git.UserRemoteConfig>
            <url>${SEED_REPO}</url>
            <credentialsId>GITHUB_cmsbuilds</credentialsId>
        </hudson.plugins.git.UserRemoteConfig>
    </userRemoteConfigs>
    <branches>
        <hudson.plugins.git.BranchSpec>
            <name>${SEED_BRANCH}</name>
        </hudson.plugins.git.BranchSpec>
    </branches>
    <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
    <submoduleCfg class="empty-list"/>
    <extensions/>
</scm>

我将 SEED_REPO 和 SEED_BRANCH 定义为全局环境变量。