使用GitHub复合Action结合matrix时找不到action.yml的问题求助
问题解决:GitHub Actions本地复合Action找不到action.yml文件
错误原因
你遇到的错误核心是代码checkout路径与本地Action调用路径不匹配:
- 你通过
actions/checkout把代码拉到了${{ env.GOPATH }}/src/github.com/${{ github.repository }}这个自定义路径下 - 但调用本地Action时用的是相对默认工作目录(
/home/runner/work/repo_name/repo_name)的.github/actions/,而这个默认目录下并没有你的Action文件,因此找不到action.yml
解决方法
方法一:修改本地Action的调用路径
uses字段不遵循defaults.run.working-directory的配置,需要直接指定Action的完整路径,对应你checkout的位置:
- id: common_workflow uses: ${{ env.GOPATH }}/src/github.com/${{ github.repository }}/.github/actions/ with: go_version: ${{ matrix.go-version }} os: ${{ matrix.os }} github_token: ${{ secrets.REPO_PAT_SERVICE_IT }}
方法二:简化checkout路径(更推荐)
直接把代码checkout到GitHub Actions的默认工作目录,无需自定义path:
- uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.ref }}
同时可以移除GOPATH相关环境变量和defaults.run.working-directory配置,Go模块会自动处理依赖路径,此时.github/actions/的相对路径就能被正确识别。
额外验证
确认你的.github/actions/action.yml文件已正确提交到仓库,没有被.gitignore规则排除。
内容的提问来源于stack exchange,提问作者Navidk
相关产品推荐
相关产品推荐

