根据分支选择部署配置

时间:2019-09-08 13:08:17

标签: jenkins-pipeline multibranch-pipeline

目前,我已经建立了一个工作正常的Jenkins声明性管道作为参数化构建,并设置了一个git pre-push钩子来构建它。

我想迁移到多分支设置,其中将feature/<someCoolFeature>development分支配置为部署到一台服务器,将test配置为部署到另一台服务器和production到生产服务器。

我对在什么时候触发构建和定义要为其建立分支的参数感到满意,但是所有文档,问题和博客文章都忽略了一个中心内容:

如何为不同服务器配置部署变量?

正如我所看到的,由于声明性管道中没有switchif控制结构。我必须创建一个库来查找要构建的BRANCH_NAME,并设置环境变量,或者根据该库选择相应的application-<env>.yml,但是在某些地方我找不到最佳实践

1 个答案:

答案 0 :(得分:1)

尽管出于简化和声明性管道的目的而未鼓励使用,但仍可以在其中使用switchif控制结构:

pipeline {...}块之前

// switch or if statements here

pipeline {
    stages {
        ...
    }
}

通过将它们包装在script {}块中,将其置于舞台内:

stage('prepare-env') {
    steps {
        script {
            // switch or if statements here
        }
    }
}

请参见https://jenkins.io/doc/book/pipeline/syntax/#script