我创建了一个 JavaScript 自动化,在该脚本中我创建了几个 YML 文件,并使用 fs 和 js-yaml 库导入它们。我已将此代码托管在存储库 A 中。
我想将我的存储库 A 转换为 GitHub 操作。我按照 GitHub 上的文档来创建 JavaScript 操作。我已按照 GitHub 的建议使用 vercel/ncc 创建一个包含所有库的文件。
但是当我在仓库 B 中使用此操作时,我收到一条错误消息,指出 yml 文件在上述路径中不可用。
GitHub 工作流程在执行期间是否下载操作的存储库?如果是,我如何将这些 yml 文件传递到脚本中?
如果没有,有哪些选项可以将这些文件传递到脚本中?
您可以使用 action.yml
上下文变量从
${{ github.action_path }}
文件访问复合操作中的操作存储库文件。
动作所在的路径。此属性仅在复合操作中受支持。您可以使用此路径访问与操作位于同一存储库中的文件。 块引用
例如,如果您需要从复合操作中的
script.py
步骤执行位于操作存储库中的Python脚本run
,则必须使用如下内容:
run: python "${{ github.action_path }}/script.py"
shell: bash
注意:我建议通知 shell 以避免出现问题,因为复合操作可以在任何操作系统运行程序上使用。
我创建了一个