Github Workflow Runner无法拾取简单任务,求排查与调试方案
GitHub Actions任务卡在“Waiting for a runner to pick up this job...”的调试方案
问题重现
配置了如下最简Workflow:
name: main on: push: branches: [ master ] pull_request: branches: [ master ] jobs: Run-npm-on-Ubuntu: name: Run npm runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: '14' - run: npm help
但任务始终停留在“Waiting for a runner to pick up this job...”状态,取消后无有效日志信息,需要排查原因让Runner正常执行任务。
调试步骤
- 核查Runner配置状态
- 公共仓库默认使用GitHub托管Runner:进入仓库
Settings→Actions→Runners,确认没有禁用GitHub托管Runner的设置。 - 私有仓库若用自托管Runner:检查Runner是否在线,在
Settings→Actions→Runners中查看状态是否为Idle,同时确保Runner机器网络正常、能连通GitHub。
- 公共仓库默认使用GitHub托管Runner:进入仓库
- 验证触发条件是否达标
- 确认触发事件符合配置:比如是否确实推送到了
master分支,或者PR的目标分支是master?如果仓库默认分支是main而非master,需要同步修改Workflow里的分支规则。 - 手动触发测试:进入仓库
Actions页面,选中对应的Workflow,点击Run workflow手动触发,排除事件触发逻辑的问题。
- 确认触发事件符合配置:比如是否确实推送到了
- 检查GitHub服务状态
- 确认GitHub Actions服务是否正常,偶尔GitHub托管Runner会出现服务波动,导致任务无法被拾取。
- 极致简化Workflow测试
- 用最基础的配置测试,排除步骤依赖问题:
运行这个配置,看是否能被Runner正常执行。name: Test Runner on: [push] jobs: test: runs-on: ubuntu-latest steps: - run: echo "Hello World"
- 用最基础的配置测试,排除步骤依赖问题:
- 确认仓库Actions权限
- 进入仓库
Settings→Actions→General,确保Allow all actions and reusable workflows已勾选,至少要允许官方的actions/checkout和actions/setup-node执行。
- 进入仓库
内容的提问来源于stack exchange,提问作者Domjan Carol-Zsolt
相关产品推荐
相关产品推荐

