【问题标题】:GitHub reusable workflow: use latest commitGitHub 可重用工作流:使用最新提交
【发布时间】:2021-11-28 16:28:32
【问题描述】:

我正在使用 GitHub 操作设置可重用的工作流程:https://docs.github.com/en/actions/learn-github-actions/reusing-workflows

由于调用工作流和被调用工作流都在同一个 repo 中,我想在调用工作流的 uses 语句中引用被调用工作流的最新提交。

例子:

uses: owner/repo/.github/workflows/called-workflow.yml@${{GITHUB_SHA}}

${{GITHUB_SHA}} 没有被插值,所以我收到以下错误:

Invalid workflow file : .github/workflows/calling-workflow.yml#L1
handling usage of workflow "owner/repo/.github/workflows/called-workflow.yml@${{GITHUB_SHA}}": can't obtain workflow file: reference to workflow should be either a valid branch, tag, or commit

在工作流中调用工作流时,如何将ref 设置为最新提交?

【问题讨论】:

  • 对于那些想知道的人,我暂时将分支名称硬编码为 ref。这并不理想,因为我想引用触发工作流的最新提交,但它确实有效:uses: owner/repo/.github/workflows/called-workflow.yml@main
  • 我也卡在这个问题上,有没有人解决这个问题?
  • 不是我,我仍在使用解决方法
  • @TWiStErRob 看起来是同一个问题。您提出了一个简洁的解决方法。我对此发表了评论。

标签: github github-actions


【解决方案1】:

现在可以实现了

截至 2022 年 2 月。

一月第一:https://github.blog/changelog/2022-01-25-github-actions-reusable-workflows-can-be-referenced-locally/

直到今天(2022 年 2 月 10 日),有一个错误阻止它处理 pull_request 事件;现在已修复: https://github.community/t/ref-head-in-reusable-workflows/203690/74?u=briantist

示例用法:

jobs:
  call-workflow-in-local-repo:
    uses: ./.github/workflows/workflow-2.yml

【讨论】:

  • 现在我们只需要一种方法来引用来自与共享工作流相同的 repo/commit 的操作...
  • 您能否详细说明来自同一个 repo/commit 的引用操作是什么意思?
  • @JohnnyOshika 当然,考虑一个包含操作和可重用工作流的存储库。您希望工作流使用这些操作。但是您不能使用典型的本地语法(结帐后)(uses: ./.github/actions/name)来引用操作,因为共享工作流在消费者的上下文中运行,因此没有关于哪个 repo 的信息,尤其是哪个 ref 结帐。无法获取正在调用的共享工作流的引用。对于我运行的项目中的细节:github.com/ansible-community/github-docs-build/issues/4
【解决方案2】:

很遗憾,现在无法将expressionsuses 一起使用。

一种可能的解决方法(我自己使用的)是将可重用的工作流推送到稳定分支之一(main/master/develop/etc.)并使用 SHA 作为@987654327 @。

这里的另一个好处是使用 SHA 实际上是 here 描述的推荐方式。

【讨论】:

    【解决方案3】:

    目前不支持。不过,看起来他们正在积极研究解决方案。 https://github.community/t/ref-head-in-reusable-workflows/203690/15

    我目前的解决方法是将可重用工作流程中的内容放入本地自定义操作中。但是,当您有多个相互关联的工作时,这并不是最佳选择。 https://docs.github.com/en/actions/creating-actions/creating-a-composite-action

    【讨论】:

    • 人们也可以前往 github 社区支持帖子并点赞。也许它会鼓励 GitHub 将更多资源投入到这个功能中......:D
    猜你喜欢
    • 1970-01-01
    • 2021-01-29
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 2022-06-10
    • 2023-01-07
    • 2022-08-23
    相关资源
    最近更新 更多