同目录调用GitHub可复用工作流失败:问题排查与解决
问题解答
路径中的双层仓库名不是问题根源
GitHub Actions的默认工作目录就是/home/runner/work/{repository-name}/{repository-name},这是正常的目录结构,和你的报错无关。
报错的真正原因
你错误地将可复用工作流当成本地Action来调用了。可复用工作流的调用逻辑是在jobs层级直接引用,而不是嵌套到某个job的steps里。你当前的production.yml和staging.yml中,把deploy.yml放在了awsDeploy job的steps列表里,GitHub会把它识别为本地Action,去寻找action.yml/action.yaml或Dockerfile,自然找不到,因此报错。
解决方法
修改production.yml和staging.yml的配置,将可复用工作流的调用放在jobs层级,同时删除多余的actions/checkout步骤(因为deploy.yml里已经包含了该步骤):
修正后的production.yml
name: Deploy - Production on: push: branches: - main workflow_dispatch: branches: - main jobs: awsDeploy: uses: ./.github/workflows/deploy.yml with: bucketFolder: production
修正后的staging.yml
name: Deploy - Staging on: push: branches: - staging workflow_dispatch: branches: - staging jobs: awsDeploy: uses: ./.github/workflows/deploy.yml with: bucketFolder: staging
额外排查建议
- 确认可复用工作流的触发条件:
deploy.yml中已经正确声明了workflow_call,这部分无需修改 - 验证文件路径:确保仓库中
deploy.yml确实存放在.github/workflows/目录下,路径没有拼写错误 - 检查权限:同一私有仓库内调用可复用工作流无需额外权限,默认即可正常执行
内容的提问来源于stack exchange,提问作者feraleyebrows
相关产品推荐
相关产品推荐

