You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub复合Action中正确访问目录内的脚本文件?

问题分析与解决方案

问题原因

你遇到的路径错误是因为复合Action的引用格式不正确,导致github.action_path解析出的路径多了一层冗余的mydemo,最终找不到目标脚本文件。

正确解决方法

1. 修正Action引用路径

你的Action存放在myorg组织下的actions仓库的mydemo子目录中,在工作流里引用时必须指定完整路径:

uses: myorg/actions/mydemo@v1

如果省略仓库名后的/mydemo,GitHub会默认去仓库根目录查找action.yaml,而你的Action定义在子目录中,就会触发路径解析错误。

2. 保留正确的脚本引用写法

你在action.yaml中的脚本调用逻辑是正确的:

runs:
  using: "composite"
  steps:
    - name: echo hello world
      run: |
        source ${{ github.action_path }}/echo.sh
      shell: bash

github.action_path会自动指向当前复合Action所在的目录(即/apps/ghe-actions/_work/_actions/myorg/actions/v1/mydemo),拼接echo.sh后就能准确定位到脚本。

3. 可选:简化仓库结构

如果想简化引用格式,可以把action.yaml和echo.sh直接移到actions仓库的根目录下,打v1标签后,引用时只需写:

uses: myorg/actions@v1

此时github.action_path指向仓库根目录,脚本路径保持${{ github.action_path }}/echo.sh即可正常工作。

额外检查点

  • 确认v1标签对应的commit包含action.yaml和echo.sh两个文件,避免标签指向的提交缺少必要文件;
  • 检查仓库权限设置,确保工作流有权限拉取该Action仓库的代码。

内容的提问来源于stack exchange,提问作者Amin Ba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 14:43:08