具有多个部署的单个 Jenkins 作业
Posted
技术标签:
【中文标题】具有多个部署的单个 Jenkins 作业【英文标题】:Single Jenkins job with multiple deployment 【发布时间】:2018-05-29 13:19:21 【问题描述】:我们如何为不同的环境配置 Jenkins 作业。我们正在使用具有不同分支的 git 存储库,例如 master 、 test 和 devl ,这些环境部署在不同的服务器中。我已经使用参数选项配置了构建,因此我可以使用单选按钮从该作业构建任何分支。 当我选择 devl 分支时,工作需要从 devl 分支获取最新代码并构建它,然后需要部署到 devl 服务器中。如果我们选择测试,则需要部署到测试服务器。我们如何在同一个作业中配置这种多重部署?
【问题讨论】:
【参考方案1】:您可以使用https://wiki.jenkins.io/display/JENKINS/Pipeline+Multibranch+Plugin。 该插件将监视您的 repo 的所有分支,并基于 Jenkinsfile 构建不同的分支。
在 Jenkinsfile 中你可以使用when
表达式:
stage('Deploy devl')
when
expression env.BRANCH_NAME == 'devl'
steps
sh 'deploy devl'
【讨论】:
【参考方案2】:-
您为什么选择在一份工作中做,而不是不同的工作?
您使用什么工具进行部署?
我可以建议 - 不要深入了解细节(因为我没有它们)。
为每个不同的环境都有一个作业,将每个作业连接到相关的 git 存储库和分支,每当构建此作业时,它将执行 scm 签出(您也可以使用钩子在更改时触发它)并部署到相关环境。
如果您回答 #2,我可能会建议其他选项来管理此问题(可能在同一工作下 - 如果您出于某种原因需要此选项)。
【讨论】:
以上是关于具有多个部署的单个 Jenkins 作业的主要内容,如果未能解决你的问题,请参考以下文章