java - Git 流 : How to configure a one-click release process in Jenkins?

标签 java git jenkins git-flow jgitflow-maven-plugin

我们正在使用标准的 git 流程分支模型(开发、主控、发布-、修补程序- 等)。

作为我们工作流程的一部分,我们希望通过 jenkins 设置“一键式”发布。

我正在查看 jgitflow-maven-plugin .我可以设置此插件以从 jenkins 进行一键发布吗?如果是这样,配置选项是什么?

特别是,我可以做这样的事情吗?

Jenkins Job
Maven goals:    release-start release-finish -Dsomething -Delse

有没有办法告诉它从最新的 -SNAPSHOT 版本自动构建,例如如果版本是 1.2.3-SNAPSHOT,它将构建 release-1.2.3

否则,是否有一个 Maven 插件可以根据 git 流分支模型构建版本(即从 develop 构建并创建一个名为 release- 的新发布分支x.y.z).

最佳答案

虽然这个答案是一年前的,但我想指出同时 jgitflow (v1.0-m5.1) 与 maven 批处理模式一起工作。

因此,要仅使用一个命令 发布工件,您可以执行:

mvn --batch-mode jgitflow:release-start jgitflow:release-finish

不需要设置developmentVersionreleaseVersion

JGitFlow 将使用当前版本减去 -SNAPSHOT 部分作为发布版本。然后它递增最低有效数字并为下一个开发版本再次添加-SNAPSHOT
示例 1.0.0-SNAPSHOT --> 发布:1.0.0,下一个开发版本:1.0.1-SNAPSHOT

为了配置一键式 Jenkins 发布作业,您需要配置一些关于 Git 的东西。

Source Code Management > Git > Additional Behaviors 下选择

  • 清除存储库并强制 git clone:只是为了确保工作区是干净的
  • checkout 到特定的本地分支:您的 develop 分支。

最后,发布发生在您的 Jenkins 服务器本地,因此您想将更改推回到您的 Git 远程服务器。

要实现这一点,最简单的方法是添加一个构建后操作,它执行以下 bash 命令(分支名称可能会有所不同,我使用的是 JGitFlow 默认值):

git push origin develop master --tags

注意 如果 Jenkins 在 Windows 上运行,您要么必须执行包含相同命令的批处理脚本(有时由于 Windows 的 SSH 问题,这不起作用)或配置 Git发布者 构建后操作 相应地。

关于java - Git 流 : How to configure a one-click release process in Jenkins?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29532101/

相关文章:

java - 如何在服务类中设置ContentView以在打开时保护应用程序

java - 使用什么: sql migration or entity setups in Spring/Hibernate?

java - 从另一个类获取类型

ruby - Rubocop 只检查修改后的行

git - 我如何在 NetBeans 中执行 'git blame'?

java - 将 GAE App Engine 数据存储区实体导出到 csv

git - 我可以删除除当前分支之外的所有本地分支吗?

java - Jenkins 无法连接到 ldaps ://server

github - Jenkins ⇔ 多个存储库的 Github-Webhook 设置

带有 Sonarqube 的 Jenkins 2.235.5 - 无效的 JSON 字符串