目前,我已经建立了一个工作正常的Jenkins声明性管道作为参数化构建,并设置了一个git pre-push钩子来构建它。
我想迁移到多分支设置,其中将feature/<someCoolFeature>
和development
分支配置为部署到一台服务器,将test
配置为部署到另一台服务器和production
到生产服务器。
我对在什么时候触发构建和定义要为其建立分支的参数感到满意,但是所有文档,问题和博客文章都忽略了一个中心内容:
如何为不同服务器配置部署变量?
正如我所看到的,由于声明性管道中没有switch
和if
控制结构。我必须创建一个库来查找要构建的BRANCH_NAME
,并设置环境变量,或者根据该库选择相应的application-<env>.yml
,但是在某些地方我找不到最佳实践
答案 0 :(得分:1)
尽管出于简化和声明性管道的目的而未鼓励使用,但仍可以在其中使用switch
和if
控制结构:
在pipeline {...}
块之前
// switch or if statements here
pipeline {
stages {
...
}
}
通过将它们包装在script {}
块中,将其置于舞台内:
stage('prepare-env') {
steps {
script {
// switch or if statements here
}
}
}