GitHub 未评估可重用工作流参考的上下文变量
GitHub Context Variables Not Evaluating for Reusable Workflow Reference
我目前正在尝试构建一个可重复使用的工作流程,其中正确设置了可重复使用的工作流程:workflow_call 触发器等等。
不过,当我调用工作流时,我需要能够使用当前分支或提交动态填充共享工作流文件引用。如果可能的话,我还想使用当前的 org/repo 动态填充组织和回购,但这不太重要。因此,我对其他工作流程的调用如下所示:
jobs:
call-build-and-test:
uses: ${{github.repository}}/.github/workflows/cicd-build-and-test.yml@${{github.sha}}
不幸的是,github.repository
和 github.sha
这两个上下文变量没有得到评估,并且工作流在运行时失败,表明在字符串的开头需要有效的组织和 repo ,或者,如果组织和 repo 是硬编码的,因此它们是有效的,那么它会声明找不到提交,因为它也没有被正确评估。
谁能解释为什么上下文变量没有得到评估?如果这不可能,我该如何动态填充这些值?对它们进行硬编码是不够的,因为它们需要针对当前分支上的版本执行,因为主分支尚未合并工作流,因此不能像 [=32= 中的示例那样简单地对其进行硬编码] 文档在这里:
我相信使用 github.*
等上下文变量是正确的方法,因为环境变量仅在 shell 执行作业的范围内可用,但是我也尝试了环境语法作为嗯,即 GITHUB_REPOSITORY
和 GITHUB_SHA
有同样的问题。
目前无法完成,因为 Github 动作不支持具有 uses
属性的 表达式 。
没有解决方法(还没有?)因为工作流解释器(在将工作流推送到存储库时也会检查工作流语法)无法从当时的表情
如果工作流被解释器识别,它可能会起作用,但它不会出现在 Actions
选项卡上,因为它被认为是无效的。
目前,您只能在@
符号后使用tag
、branch ref
或commit hash
,与使用任何操作的方法相同。因此,目前必须对其进行硬编码。
我目前正在尝试构建一个可重复使用的工作流程,其中正确设置了可重复使用的工作流程:workflow_call 触发器等等。
不过,当我调用工作流时,我需要能够使用当前分支或提交动态填充共享工作流文件引用。如果可能的话,我还想使用当前的 org/repo 动态填充组织和回购,但这不太重要。因此,我对其他工作流程的调用如下所示:
jobs:
call-build-and-test:
uses: ${{github.repository}}/.github/workflows/cicd-build-and-test.yml@${{github.sha}}
不幸的是,github.repository
和 github.sha
这两个上下文变量没有得到评估,并且工作流在运行时失败,表明在字符串的开头需要有效的组织和 repo ,或者,如果组织和 repo 是硬编码的,因此它们是有效的,那么它会声明找不到提交,因为它也没有被正确评估。
谁能解释为什么上下文变量没有得到评估?如果这不可能,我该如何动态填充这些值?对它们进行硬编码是不够的,因为它们需要针对当前分支上的版本执行,因为主分支尚未合并工作流,因此不能像 [=32= 中的示例那样简单地对其进行硬编码] 文档在这里:
我相信使用 github.*
等上下文变量是正确的方法,因为环境变量仅在 shell 执行作业的范围内可用,但是我也尝试了环境语法作为嗯,即 GITHUB_REPOSITORY
和 GITHUB_SHA
有同样的问题。
目前无法完成,因为 Github 动作不支持具有 uses
属性的 表达式 。
没有解决方法(还没有?)因为工作流解释器(在将工作流推送到存储库时也会检查工作流语法)无法从当时的表情
如果工作流被解释器识别,它可能会起作用,但它不会出现在 Actions
选项卡上,因为它被认为是无效的。
目前,您只能在@
符号后使用tag
、branch ref
或commit hash
,与使用任何操作的方法相同。因此,目前必须对其进行硬编码。