【发布时间】:2022-01-04 05:12:34
【问题描述】:
我想用reusable workflow 抽象我的一些 GitHub 操作。
为此,我需要以{owner}/{repo}/{path}/{filename}@{ref} 格式调用我新定义的可调用工作流
例如(来自文档)
jobs:
call-workflow-1:
uses: octo-org/this-repo/.github/workflows/workflow-1.yml@172239021f7ba04fe7327647b213799853a9eb89
call-workflow-2:
uses: octo-org/another-repo/.github/workflows/workflow-2.yml@v1
但是,在实践中,我正在处理我的分支 some-branch-name,我正在处理我的 workflow-1.yml 文件,并且我希望能够运行我当前分支中定义的操作,给定
`{ref} 可以是 SHA、发布标签或分支名称。
看来我需要使用
jobs:
call-workflow-1:
uses: octo-org/this-repo/.github/workflows/workflow-1.yml@some-branch-name
但是,我希望它适用于任何分支,所以
jobs:
call-workflow-1:
uses: octo-org/this-repo/.github/workflows/workflow-1.yml@${{ github.ref }}
但是,事实证明这不可能作为 can't be used 属性中的 can't be used 表达式。
我怎样才能做到这一点?
【问题讨论】:
-
如你所说。目前无法完成,因为 Github Actions 不支持具有
uses属性的表达式。没有解决方法(还没有?),因为工作流解释器(也检查将工作流推送到存储库的工作流语法)此时无法从表达式中获取值。如果工作流被解释器识别,它可能会起作用,但它不会出现在“操作”选项卡上,因为它被认为是无效的。 -
目前,您只能在
@符号后使用tag、branch ref或commit hash,与使用任何操作的方式相同。 (其他人在这里遇到了同样的问题:stackoverflow.com/questions/69500491/…) -
@GuiFalourd 你应该回答这个问题,这样你才能获得适当的奖励。即使无法完成 OP 请求,我相信其他人也会寻找相同的问题并感谢您知道目前不可能以及原因。
-
@croakPedlar 感谢您的反馈。我会按照你的建议添加它????
-
我在此处添加了状态更新和潜在的解决方法,如果这有帮助的话。 stackoverflow.com/a/70571455/162830
标签: github-actions