如何使用GitHub Actions对构建工件进行版本控制?

moo*_*ara 5 versioning automation github continuous-delivery github-actions

我的用例是我希望每个构建/运行的工件都有一个唯一的版本号。在使用诸如CircleCI,Travis等当前工具的情况下,有可用的内部版本号,基本上它是一个总会增加的计数器。因此,我可以创建类似的版本字符串0.1.0-27。即使对于相同的提交,此计数器也会每次增加。

如何使用GitHub Actions做类似的事情?Github操作仅提供GITHUB_SHA和GITHUB_REF。

pet*_*ans 28

GitHub Actions 现在在github上下文中具有唯一的运行/构建编号和 ID 。

github.run_id:存储库中每次运行的唯一编号。如果您重新运行工作流运行,此数字不会更改。

github.run_number:存储库中特定工作流每次运行的唯一编号。对于工作流的第一次运行,此数字从 1 开始,并随着每次新运行而增加。如果您重新运行工作流运行,此数字不会更改。

参考:https : //docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context

您可以在这样的工作流中引用它们:

      - name: Output Run ID
        run: echo ${{ github.run_id }}
      - name: Output Run Number
        run: echo ${{ github.run_number }}
Run Code Online (Sandbox Code Playgroud)

  • @Javelin我认为这可以使用`github.run_attempt`来解决 (12认同)
  • 重要提示:如果您重新运行该操作,这些数字不会改变。这使得内部版本号非常脆弱。 (4认同)
  • 我仍然不清楚“run_id”和“run_number”之间的区别......? (4认同)

Ein*_*son 9

我遇到了同样的问题,刚刚创建了一个操作来生成连续的内部版本号。使用它就像

- uses: einaregilsson/build-number@v1
  with:
    token: ${{secrets.github_token}}
Run Code Online (Sandbox Code Playgroud)

在之后的步骤中,您将拥有一个BUILD_NUMBER环境变量。在https://github.com/einaregilsson/build-number/ 上查看有关对不同作业使用相同内部版本号的更多信息以及更多信息

更新:现在$GITHUB_RUN_NUMBERGitHub Actions 中内置了一个变量,因此不再需要这种方法。