当前位置: 首页 > 知识库问答 >
问题:

如何使用GitHub操作版本构建工件?

咸正平
2023-03-14

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

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

共有3个答案

蔚和风
2023-03-14

如果您想要一个常量整数增量(1,2,3,4,5),我在文档中没有找到任何可以用作此类增量的内容,您可以知道特定操作运行了多少次。我可以想到两种解决方案:

>

  • 维护回购上的状态:例如,使用计数。生成使用工作流ID并在生成时递增的文件。这是我最不喜欢的两种解决方案,因为它会增加其他复杂性,就像它本身会触发推送事件一样。您可以将此文件存储在其他地方,如S3或Gist中。

    使用日期:如果你不担心整数增量的顺序,你可以使用当前的数据和时间,例如今天13:10的时间。

    无论您是否有Actions Beta Access,我肯定会将其反馈给GitHub。

    希望有帮助。

  • 闻人梓
    2023-03-14

    我遇到了同样的问题,刚刚创建了一个操作来生成顺序构建号。像这样使用它

    - uses: einaregilsson/build-number@v1
      with:
        token: ${{secrets.github_token}}
    

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

    更新:现在GITHUB操作中内置了一个变量$GITHUB\u RUN\u NUMBER,因此不再需要这种方法

    席烨
    2023-03-14

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

    github。run\u id:存储库中每个工作流运行的唯一编号。如果重新运行工作流运行,此数字不会更改。

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

    github。run\u尝试:存储库中特定工作流运行的每次尝试的唯一编号。对于工作流运行的第一次尝试,此数字从1开始,并随着每次重新运行而递增。

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

    您可以在如下工作流中引用它们:

    - name: Output Run ID
      run: echo ${{ github.run_id }}
    - name: Output Run Number
      run: echo ${{ github.run_number }}
    - name: Output Run Attempt
      run: echo ${{ github.run_attempt }}
    
     类似资料:
    • 我对GitHub操作(以及一般的持续集成)是新手。我刚刚阅读了使用Node.js with GitHub操作,我在Node.js工作流模板中找到了这个片段: 上面提到 该模板包括一个矩阵策略,它用三个Node.js版本构建和测试代码:8.x、10.x和12.x。“x”是一个通配符,它与某个版本可用的最新次要版本和补丁版本相匹配。数组中指定的每个Node.js版本都创建一个运行相同步骤的作业。 我的

    • 我正在尝试使用Maven作为构建工具,为一个简单的Spring启动应用程序编写github操作管道。构建和验证成功,但将Jar部署到Github注册表失败,出现错误: 这是我的pom。xml 这是我创建的工作流文件: 我还尝试将服务器标记settings.xml,在maven部署阶段将其作为参数传递,但同样的错误也失败了。

    • 我正在构建一个python项目--。我想使用Github操作来自动化一些linting 为此,我使用了Github推荐的python actions starter工作流——python应用程序的一个轻微修改。 在作业中的“安装依赖项”步骤中,我遇到了一个错误。这是因为pip试图安装我的本地软件包,但失败了。 如果[-f requirements.txt], 相应的错误是: 很可能,该作业无法安装

    • 我在GitHub中有一个包含多个服务的monorepo 我想在两个条件下同时构建它们(使用GitHub操作): 标记-使用标记名称构建图像() 分支main-使用带有缓存的标签构建图像。 我找不到如何创建通用工作流和修改参数(如函数)的方法。 我能想到的唯一解决方案是创建一个复合操作,如下所示: 但现在我遇到了一个问题,需要在两个工作流中指定服务的所有作业,例如: 主要分支机构工作流: 标记分支工

    • 这个问题是针对开源vscode(在MIT许可下),而不是VS代码。我花了昨天的时间试图找出如何构建某种发布版本。我的意思是,就像在VisualStudio中一样,我们有“调试”和“发布”构建。我是C#开发者,可以这样说,vscode都是基于web技术的。在大学里做过一些javascript,现在是历史。我不知道从哪里开始。有人能给我指出正确的方向和学习的内容吗?对于初学者来说,如何使用自定义exe

    • 问题内容: 如何使用JavaScript查找操作系统名称和操作系统版本? 问题答案: 如果您使用列出所有的属性 你会看到这样的东西 请注意,该属性为您提供Windows版本。另外,您应该知道: