【问题标题】:Bump Python package version upon main branch merge在主分支合并时增加 Python 包版本
【发布时间】:2022-02-09 15:07:59
【问题描述】:

我的问题

我正在开发一个 Python 包,供我公司的几个内部消费者使用他们的 CI/CD 管道使用。因此,让他们知道软件包的最新版本是很重要的,这样他们就可以在它被更改时安装它。该包使用经典的PEP 440 SemVer structure,所以我通常只是更新次要号码。

我正在使用 Git 和 GitHub,因此对主分支的每次新提交都意味着一个新版本。我目前正在手动更新版本,这容易出错且乏味。我正在寻找一种在将 PR 合并到主分支时自动提升次要版本的方法。

我尝试了什么

  • 合并前的手动版本碰撞
  • 使用bump2version - 我不知道如何让它在合并到主分支时自动发生

我的问题

如何在 PR 合并到 repo 的主分支时自动调整 Python 包的次要版本?

【问题讨论】:

  • 看看github actions。它们让您定义一个触发器(即“每次推送到 master”)和您想要采取的操作,例如调用 bump2version 并提交/推送该更改。

标签: python git github version semantic-versioning


【解决方案1】:

感谢 @VonC 提供优雅的解决方案 - 效果很好 :-)

(与@AdamMatan 在同一开发团队中)

我们认为有必要进行一项调整:

    on:
      push:
        branches:
        - master
        paths-ignore:
        - version.md

没有这个(或等效的“动作过滤器”) - 这个动作将永远在“github fork 炸弹”中自我触发:-)

【讨论】:

  • 感谢您的修复。赞成。我已经相应地编辑了我的答案。
【解决方案2】:

您可以将bump2version-action 添加到您的GitHub 存储库中,而不是在本地使用bump2version,它指出:

每次您将某些内容合并到主分支时,您都会收到一个额外的直接提交给 main,它会增加 version.md 中的版本。

例子:

name: Bump version workflow

on:
  push:
    branches:
    - main
    paths-ignore:
    - version.md

jobs:
  bump-version:
    name: Bump package version
    if: "!contains(github.event.head_commit.message, 'Bump version')"
    runs-on: ubuntu-20.04
    steps:
    - name: actions/checkout
      uses: actions/checkout@v2
      with:
          persist-credentials: false
    - name: current_version
      run: echo "current_version=$(grep '# version' version.md | cut -d ' ' -f3)" >> $GITHUB_ENV
    - name: FragileTech/bump-version
      uses: FragileTech/bump-version@main
      with:
        current_version: "${{ env.current_version }}"
        files: version.md
        commit_name: Your Company Bot
        commit_email: bot@your-company.com
        login: your-bot-login
        token: "${{ secrets.BOT_TOKEN }}"

【讨论】:

    猜你喜欢
    • 2020-12-17
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多