![](/img/trans.png)
[英]Internal reusable GitHub workflow - using secrets in repository where workflow is
[英]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.