【问题标题】:maven-release-plugin release:branch - Avoid commit to original branchmaven-release-plugin release:branch - 避免提交到原始分支
【发布时间】:2020-04-27 23:11:43
【问题描述】:

我刚刚遇到了障碍,真的需要了解 maven-release-plugin 的人提供一些见解。我正在尝试使用该插件来操作我的 pom 文件,但没有让它接触/提交到主分支,而是到一个单独的分支,以便我以后可以从那里进行 PR 并获得分支所需的审查 + 批准我的仓库中的保护政策。

上下文

  1. 我们使用 github,公司主要出于安全原因在我们的主要分支机构执行新的分支机构保护政策。
  2. 我一直在使用 jenkins 管道来发布和交付我的代码,然后使用 maven-release-plugin 来标记 repo,并在 pom.xml 中切换版本等。
  3. 使用github的分支保护时,发布插件无法进行正常的操作,因为它无法直接推送到主分支。

我的研究

我发现该插件支持creating a branch in the process 发布,这正是我正在寻找的。所以,我搭建了一个环境来尝试这个:

  • GitHub 存储库
  • Maven 项目

并开始运行一些测试。最接近成功的是这一行(版本号并不重要):

mvn --batch-mode release:branch '-DbranchName=release-v1.2.1' -DupdateBranchVersions=true -DupdateWorkingCopyVersions=false

我从 pom 中的版本开始设置为我正在发布的版本的值(这不是很好,但我愿意自己提交)。我检查了release:prepare docs,但没有发现任何可以帮助我实现目标的东西。

我的问题

有没有办法告诉插件不要对原始分支进行任何提交,以免被分支保护拒绝? 我总是至少得到一个像这样的主分支的提交:

* 934af86 2020-04-27 | [maven-release-plugin] prepare branch release-v1.2.1 (HEAD -> master) [Commiter Name]

【问题讨论】:

    标签: maven github branch maven-release-plugin


    【解决方案1】:

    我知道现在回答这个问题已经很晚了,但我也遇到了同样的问题,也许其他人也会搜索这个问题。

    我的配置:

    • 詹金斯
    • SCM 经理(索尼娅)
    • Git 主存储库仅限 PR 使用

    我最终要做的是签出新分支并从那里进行发布。在我的 SCM-Manager 中,我从除 jenkis 之外的其他用户那里删除了此分支的所有特权,以保护它不被直接写入。

    所以在 jenkins 项目配置中,我将“要构建的分支”设置为“*/Master”。然后我在“其他行为”中添加了“签出到特定的本地分支”。在分支名称中,我放置了“master_release”。当你第一次发布时,你的分支应该会显示出来。

    由于这是第一个版本,如果我在下一次迭代中遇到任何问题,我会更新这个答案,但从我的角度来看它应该可以工作。

    【讨论】:

    • 嗯...是的,这是一个选项。实际上,我们创建了一个标签,并且只推送标签,而不合并到 master。但是 maven-release-plugin 本身对上下文没有好处。
    猜你喜欢
    • 2011-02-07
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多