Github actions -如何在每个分支中获得从1开始的构建号



假设我有这些分支:

主要
  • feature1
  • feature2

在我的github操作中,我需要知道我已经推送到分支或我手动触发该分支上的操作的次数

With${{ github.run_attempt }}:每次我按下,我得到数字1。只有当我手动重新运行作业

时,我才会得到一个新数字with${{ github.run_number }}:

每次推送到任何分支中的这个存储库时,它都是递增的。

所以假设我push到main或者feature1或者feature2分支,它被加到这个数字

但是如果我手动触发管道,它不会被添加到管道中


我需要一个变量,如果我第一次推到任何分支,给我数字1,如果我再次推/或手动触发,它会添加到它。

所以假设我将2次推入feature1分支并手动运行一次,然后再次推入,它会在下一次推入或手动触发时给我数字4,与其他分支或其管道上发生的事情无关。

我需要这个数字,因为在我的docker注册表中,我的路径是这样的:

docker-reg-host/项目名称/分支名称:the-number-from-above

the-number-from-above是手动或通过push触发管道的次数,在这个特定的分支中,而不是在其他分支中

我想每次添加一个新标签它是这个数字


我可以使需求更简单,并请求一个返回特定分支run_number的变量

那么我就会选择这个策略

docker-reg-host/项目名称/分支名称:branch_run_number-run_attempt

但至少我需要知道我向这个特定分支推送了多少次

GitHub不捕获每个分支的运行数。GitHub也不会以一种容易访问的方式向分支公开推送的数量。

一个数字由你来决定。

  • 一种方法是为你的工作流标记提交。这样你就可以数树枝上的标签了。从而得到你的号码。

  • 另一种方法是查询docker注册表中已经推送到那里的版本。使用一些powershell或其他脚本语言,你可以找到分支上的最高版本,并在推送新容器之前添加一个。

  • 另一种方法是使用当前日期& &;时间作为分支上的版本。

  • 或者简单地按照每个人的建议去做,从最后一个标签/分支开始计算提交的次数,并可以选择添加尝试数。

这是一个使用"标签的操作"策略并自动将新标签推送到仓库。您可以传入一个前缀,在您的示例中是分支名称(ref_name),以生成每个分支的新编号:

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Generate build number
id: buildnumber
uses: onyxmueller/build-tag-number@v1
with:
token: ${{ secrets.github_token }}
prefix: ${{ github.github.ref_name }}
- run: |
write-output $env:build_number
env:
build_number: ${{ steps.buildnumber.outputs.build_number }}
shell: pwsh

最新更新