繁体   English   中英

在触发可重用工作流时使用 `GITHUB_REF`

[英]Using `GITHUB_REF` when triggering a reusable workflow

我试图从一个工作流调用多个工作流,我想使用提交 sha、分支名称或其他东西来获取工作流文件,其中包含触发工作流的分支上的最新更改。

例如,我在一个分支<feature_branch>上,我想触发该分支上的工作流。 我希望后来调用的工作流的内容也是来自该分支的内容。 出于这个原因,我尝试了以下方法:

// My repository structure's essential part

repo_folder
> .github
| > workflows
| | > main-ci.yml
| | > other-workflow.yml
# main-ci.yml

name: Main CI workflow
on: ...
jobs:
  uses: <my_repo>/.github/workflows/other-workflow.yml@$GITHUB_REF
  ...
# other-workflow.yml
...

问题是当 GitHub 解析main-ci工作流时,它似乎没有在尝试调用工作流之前解析$GITHUB_REF环境变量,并报告问题

错误解析称为工作流“<my_repo>/.github/workflows/other_workflow.yml@$GITHUB_REF”:无法获取工作流:对工作流的引用应该是有效的分支、标记或提交

我也尝试使用上下文变量(如${{ github.sha }} )但使用该语法,它要求从版本字段中删除空格。

在前往 GitHub 操作文档的工作流语法部分后才弄清楚这一点。 它说:

如果您使用第二个语法选项(没有 {owner}/{repo} 和 @{ref}),被调用的工作流来自与调用者工作流相同的提交。

这个例子表明

jobs:
  call-workflow-1-in-local-repo:
    uses: octo-org/this-repo/.github/workflows/workflow-1.yml@172239021f7ba04fe7327647b213799853a9eb89
  call-workflow-2-in-local-repo:
    uses: ./.github/workflows/workflow-2.yml
  call-workflow-in-another-repo:
    uses: octo-org/another-repo/.github/workflows/workflow.yml@v1

所以,我需要做的就是改变

  uses: <my_repo>/.github/workflows/other-workflow.yml@$GITHUB_REF

  uses: ./.github/workflows/other-workflow.yml

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM