在主分支合并时增加 Python 包版本
Bump Python package version upon main branch merge
我的问题
我正在开发一个 Python 包,供我公司的几个内部消费者使用他们的 CI/CD 管道使用。因此,了解软件包的最新版本对他们来说很重要,这样他们才能在更改后安装它。包里用的是经典的PEP 440 SemVer structure,所以我一般只更新小号
我正在使用 Git 和 GitHub,所以每次对主分支的新提交都意味着一个新版本。我目前是手动更新版本,容易出错且繁琐。每当我将 PR 合并到主分支时,我正在寻找一种自动提升次要版本的方法。
我尝试了什么
- 合并前的手动版本提升
- 使用 bump2version - 我不知道如何让它在合并到主分支时自动发生
我的问题
如何在 PR 合并到 repo 的主分支后自动增加 Python 包的次要版本?
您可以将 bump2version-action
添加到您的 GitHub 存储库,而不是在本地使用 bump2version,其中指出:
Every time you merge something to main branch, you'll receive an additional direct commit to main that increments the version in 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 }}"
感谢@VonC 提供优雅的解决方案 - 它工作得很好:-)
(与@AdamMatan 在同一个开发团队)
我们发现有必要进行一项调整:
on:
push:
branches:
- master
paths-ignore:
- version.md
如果没有这个(或等效的“动作过滤器”)——这个动作将在“github 分叉炸弹”中永久自我触发:-)
我的问题
我正在开发一个 Python 包,供我公司的几个内部消费者使用他们的 CI/CD 管道使用。因此,了解软件包的最新版本对他们来说很重要,这样他们才能在更改后安装它。包里用的是经典的PEP 440 SemVer structure,所以我一般只更新小号
我正在使用 Git 和 GitHub,所以每次对主分支的新提交都意味着一个新版本。我目前是手动更新版本,容易出错且繁琐。每当我将 PR 合并到主分支时,我正在寻找一种自动提升次要版本的方法。
我尝试了什么
- 合并前的手动版本提升
- 使用 bump2version - 我不知道如何让它在合并到主分支时自动发生
我的问题
如何在 PR 合并到 repo 的主分支后自动增加 Python 包的次要版本?
您可以将 bump2version-action
添加到您的 GitHub 存储库,而不是在本地使用 bump2version,其中指出:
Every time you merge something to main branch, you'll receive an additional direct commit to main that increments the version in
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 }}"
感谢@VonC 提供优雅的解决方案 - 它工作得很好:-)
(与@AdamMatan 在同一个开发团队)
我们发现有必要进行一项调整:
on:
push:
branches:
- master
paths-ignore:
- version.md
如果没有这个(或等效的“动作过滤器”)——这个动作将在“github 分叉炸弹”中永久自我触发:-)