GitHub Actions调用可复用工作流报workflow was not found
故障报错
运行GitHub Actions工作流时抛出以下错误:
Invalid workflow file:.github/workflows/pull_request.yml#L12(无效工作流文件)
error parsing called workflow "peopleticker/ccc/.github/workflows/pull_request.yml@master": workflow was not found(解析被调用工作流出错,未找到对应工作流)
当前使用的工作流配置:
name: Call a reusable workflow permissions: id-token: write contents: read on: pull_request: jobs: call-workflow-passing-data: uses: peopleticker/ccc/.github/workflows/pull_request.yml@master
根因排查与修复
该报错由可复用工作流引用配置不符合GitHub Actions规则导致,按优先级排查以下三点即可解决:
- 分支名配置错误:当前绝大多数GitHub仓库的默认分支为
main而非master,你当前的引用固定写死了@master后缀,如果目标仓库不存在master分支会直接触发找不到工作流的错误。先进入peopleticker/ccc仓库确认目标工作流实际所在的分支名,把引用后缀改成对应分支即可,比如@main。 - 目标工作流缺少可复用触发器:被外部仓库调用的工作流,必须在自身的
on配置块中声明workflow_call触发器,否则GitHub不会将其识别为可复用工作流,同样会报找不到的错误。需要打开peopleticker/ccc/.github/workflows/pull_request.yml文件,在on节点下添加对应配置:
on: workflow_call: # 声明该工作流支持被外部调用 # 可保留原有其他触发器配置,比如pull_request pull_request:
- 引用路径格式错误:如果你要调用的
pull_request.yml本来就存放在当前编写配置的仓库中,不需要写owner/repo格式的跨仓库引用,直接改成相对路径引用即可:
jobs: call-workflow-passing-data: uses: ./.github/workflows/pull_request.yml
补充:如果目标仓库为私有仓库,还需要确保当前运行工作流的仓库持有目标仓库的读取权限,不过这类权限问题通常会抛出403权限错误,不会返回not found提示,放在最后排查即可。
内容的提问来源于stack exchange,提问作者rwilliams
相关产品推荐
相关产品推荐

