根据分支选择部署配置



目前,我有一个有效的 Jenkins 声明式管道设置为参数化构建,并设置了一个 git 预推送钩子来构建它。

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

我习惯于触发构建并定义何时构建哪些分支的参数,但所有文档、问题和博客文章都跳过了一个中心内容:

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

在我看来,因为声明性管道中没有switchif控制结构。我必须创建一个库来查找我正在构建的BRANCH_NAME,并设置环境变量,或基于此选择相应的application-<env>.yml,但必须有一个我缺少的最佳实践。

尽管为了声明性管道的简单性和目的性而不鼓励这样做,但您仍然可以在其中同时使用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。

最新更新