【问题标题】:Issue with parametrising feature builds by amending POM通过修改 POM 来构建参数化功能的问题
【发布时间】:2019-05-30 21:33:30
【问题描述】:

我们正在开发 mule 应用程序,最近我们被指示遵循 PURE Scrum,即分支和开发的 git-flow 模型。

以下是我们需要遵循的步骤: 1. 对于每个开发任务(分配了 JIRA ID 例如:JIRA-1234),我们需要创建不同的功能分支,以 JIRA 任务 ID 命名。

  1. 一旦开发完成,并在本地测试OK,我们需要将我们的功能分支推送到远程存储库。

  2. Jenkins 构建作业将轮询每个功能分支,并在识别到任何推送事件时构建它。部署后工件版本将保存到 Nexus。

  3. QA 会将各自的功能分支部署到 TEST 环境中,执行自动化/手动测试。如果测试没问题,那么特性分支将被合并到开发中。

  4. 在 sprint 结束时,我们将从开发分支创建 RELEASE 分支(其中仅包含当前 sprint 的 TESTED OK 开发)

我在实现这个 100% 时遇到了问题(当然我有点乐观):

  1. 如果 QA 需要使用 Jenkins 作业将每个功能分支部署到 TEST 环境中,那么应该已经在 Nexus 中保存了一个具有唯一名称的工件(比如说 4.1.0-JIRA-1234-SNAPSHOT)。为此,我需要使用 4.1.0${JIRA_ID}-SNAPSHOT 修改 POM.xml 文件,并从 maven build 命令传递 JIRA_ID 参数。这是可能的,但是使用这个 POM.xml 文件我们会在创建 RELEASE 时遇到问题(这是因为我们使用了 MVN JGITFLOW:RELEASE-START / MVN JGITFLOW:RELEASE-FINISH)

  2. 我们可以将此责任交给开发人员 - 当他们针对 JIRA ID 创建新功能分支时,他们会手动将 POM.xml 中的版本修改为 4.1.0-JIRA-1234-SNAPSHOT。这将在功能构建后在 Nexus 中创建工件,并且 QA 可以将其部署到 TEST 并完成测试。问题是在合并时,由于值重叠,更多功能分支可能与 POM.xml 文件发生冲突。

请任何人建议我处理这种情况的最佳方法,并正确遵循 GIT-FLOW 流程?

【问题讨论】:

    标签: jenkins maven-3 mule-esb jgitflow-maven-plugin


    【解决方案1】:

    这个问题有一个解决方案 - 将脚本添加到构建功能分支作业中。这将只读取功能分支名称并附加到工件名称。

    例如: 功能分支名称 - JIRAID-1234 POM 工件版本 - 1.1.0-SNAPSHOT

    Jenkins 构建作业最终会在 nexus 中生成名为 - 1.1.0-JIRAID-1234-SNAPSHOT 的工件

    这样可以更轻松地保存我的特定更改,并有助于 QA 独立部署和测试

    【讨论】:

      猜你喜欢
      • 2015-09-09
      • 1970-01-01
      • 2012-05-31
      • 2013-06-14
      • 1970-01-01
      • 2011-03-29
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多