在另一个存储库中使用该操作时如何访问 GitHub Action 存储库的文件?

问题描述 投票:0回答:1

我创建了一个 JavaScript 自动化,在该脚本中我创建了几个 YML 文件,并使用 fs 和 js-yaml 库导入它们。我已将此代码托管在存储库 A 中。

我想将我的存储库 A 转换为 GitHub 操作。我按照 GitHub 上的文档来创建 JavaScript 操作。我已按照 GitHub 的建议使用 vercel/ncc 创建一个包含所有库的文件。

但是当我在仓库 B 中使用此操作时,我收到一条错误消息,指出 yml 文件在上述路径中不可用。

GitHub 工作流程在执行期间是否下载操作的存储库?如果是,我如何将这些 yml 文件传递到脚本中?

如果没有,有哪些选项可以将这些文件传递到脚本中?

javascript github github-actions
1个回答
7
投票

您可以使用 action.yml 上下文变量从

${{ github.action_path }}
文件访问
复合操作
中的操作存储库文件。

动作所在的路径。此属性仅在复合操作中受支持。您可以使用此路径访问与操作位于同一存储库中的文件。 块引用

来源:Github 关于 Context 的文档

例如,如果您需要从复合操作中的

script.py步骤执行位于操作存储库中的Python脚本
run
,则必须使用如下内容:

run: python "${{ github.action_path }}/script.py" shell: bash

注意:我建议通知 shell 以避免出现问题,因为复合操作可以在任何操作系统运行程序上使用。

我创建了一个

小动作作为参考,如果你想看看,它就使用了这个概念。

© www.soinside.com 2019 - 2024. All rights reserved.