首页 > 解决方案 > 将配置传递到 Jenkins 流水线

问题描述

我正在尝试找到一种方法,在执行时将 Multibranch 管道作业的配置传递到 jenkinsfile 中。

我的目标是配置如下内容:

Branch : Server
"master" : "prodServer"
"develop" : "devServer"
"release/*", "hotfix/*" : "stagingServer"
"feature/Thing-I-Want-To-Change-Regularly" : "testingServer"

然后我可以在其中编写这样的 Jenkinsfile:

pipeline {
    agent any
    stages {
        stage('Example Build') {
            steps {
                echo 'Hello World'
            }
        }
        stage('Example Deploy') {
            when {
                //branch is in config branches
            }
            steps {
                //deploy to server
            }
        }
    }
}

我很难找到实现这一目标的方法。EnvInject Plugin似乎是非流水线项目的解决方案,但它目前存在安全问题并且仅支持部分流水线。

标签: jenkinsjenkins-pipeline

解决方案


如果要根据分支部署到不同的服务器,在 Multibranch Pipelines 中可以使用:

when { branch 'master' }(形容词)

或者

${env.BRANCH_NAME}(脚本)

访问您所在的分支,然后添加逻辑以基于此部署到相应的服务器。


推荐阅读