使用Jenkins声明式管道发布Jgitflow

时间:2020-03-17 12:31:55

标签: git maven jenkins jenkins-pipeline

在发布环境中,我们使用JGitFlow进行版本控制,并使用Jenkins进行构建作业(并上传到Artifactory)。我们将Jenkins设置为在完成提交并且代码包含Jenkinsfile(具有声明性管道)时自动触发构建。

我的问题是,如果使用JGitFlow发行,它会进行很多提交。如果我创建了Jenkins文件,则每次提交都会触发Jenkins在不同分支上的构建。

我想要的是触发一个发布(从developer分支),然后Jenkins执行一个完整的发布,最后,我只想上传该应用程序的发布版本。

我在互联网上四处张望,并据此提出了三种不同的解决方案:

选项1:每个分支的特定版本

  • 主(任何提交)-> mvn build &&将稳定版本上传到artifarty
  • Release-x(仅在发布开始作业之后进行构建)-> mvn release-finish(无上传工件)
  • 开发(发布参数= true,不是来自Jenkins commit)-> mvn release-start(无上传工件)
  • 开发(发布参数= false,不是来自Jenkins commit)-> mvn build &&上载到artifarty

选项2:在开发上进行大量开发

  • 永远不要通过詹金斯(Jenkins)的提交触发构建工作
  • 如果要在Develop分支上进行发行,请执行以下步骤:
    • mvn build release-start release-finish(不要上传工件)
    • 结帐主分支
    • mvn build &&上载工件(图像)

选项3:组合

  • 您经常使用的主分支机构:mvn build &&上载稳定版本。
  • 您不会通过詹金斯(Jenkins)的提交触发其他分支
  • 如果要在Develop分支上进行发布:mvn build release-start release-finish(不要上传工件)

选项1是jgitflow的工作方式,但是构建脚本将变得非常复杂。第二个选项更容易理解,但是在开发发行版中,您实际上是在构建master分支。我认为方案三是两者的完美结合。不复杂,但在开发分支工作中也没有建立主分支。

有人有更好的主意吗?一个对我有帮助的插件?还是一个对他们有用的例子?

提前谢谢

0 个答案:

没有答案