GitHub Actions部署AWS实例添加Token后工作流卡滞求助
问题分析与解决方法
核心问题:Workflow语法错误
你当前的Workflow文件存在YAML语法问题,这是导致工作流一直等待runner的直接原因:
原代码中jobs部分的格式错误:
jobs: build: runs-on: self-hosted
正确的层级缩进应该是:
jobs: build: runs-on: self-hosted
YAML对缩进和层级要求严格,错误的格式会导致GitHub无法正确解析工作流任务,进而无法分配给self-hosted runner,表现为持续等待状态。
关于Token的正确使用
你添加的自定义Token(用于Terraform cloud-init)不需要在actions/setup-node中配置,因为该参数的作用是授权访问私有npm仓库或GitHub Packages的npm源,和Terraform的需求无关:
- 如果需要用这个Token拉取私有Terraform模块或执行相关操作,应该在Terraform执行的步骤中设置环境变量,比如:
- run: terraform init env: GITHUB_TOKEN: ${{ secrets.TOKEN_NAME }} - 若你确实需要在
setup-node中保留该Token,确保你的PAT拥有repo(全仓库权限)和packages:read(若使用GitHub Packages)权限,避免因权限不足导致流程异常。
验证Self-hosted Runner状态
检查仓库的Settings → Actions → Runners页面,确认AWS实例上的runner处于在线状态:
- 如果runner离线,需要重新注册:在该页面点击「New self-hosted runner」,按照生成的命令在AWS实例上重新执行,完成runner的绑定(注册用的临时Token和你的自定义PAT不是同一个)。
内容的提问来源于stack exchange,提问作者crvxッ
相关产品推荐
相关产品推荐

