如何在不发布的情况下在其他仓库测试GitHub Action?
问题排查与解决方案
不需要额外提供仓库URL,你遇到的报错本质是GitHub未正确识别你引用的内容为GitHub Action,转而将其作为Shell命令执行导致的,可按以下顺序排查:
- 检查自定义Action所在仓库的对应分支根目录,是否存在
action.yml或action.yaml配置文件,该文件是GitHub识别Action的必备入口,缺失会直接触发上述报错。 - 确认引用时填写的分支名拼写准确,比如Action仓库默认分支为
main就不要误写为master。 - 如果你的
action.yml没有放在仓库根目录,而是放在子目录下,引用时需要补充子目录路径,示例如下:steps: - uses: <username>/<repo-name>/<action-subdir-path>@<branch-name> with: # 输入参数 - 确认自定义Action所在仓库的可见性:如果要在公共仓库中直接引用,Action仓库必须为公开状态,私有仓库会因权限不足无法被拉取。如果需要测试私有Action,可先将其拉取到工作流执行环境的本地路径再引用,示例配置如下:
steps: # 拉取自定义Action仓库到本地指定路径 - name: 拉取自定义Action uses: actions/checkout@v4 with: repository: <username>/<repo-name> ref: <branch-name> path: ./my-custom-action # 私有仓库需要补充有权限的PAT # token: ${{ secrets.PAT_FOR_ACTION_REPO }} # 引用本地路径的Action - name: 执行自定义Action uses: ./my-custom-action with: # 输入参数
退出码127的含义是系统找不到要执行的命令/文件,调整上述配置后即可正常调用未发布到市场的自定义Action。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

