PR依赖其他Workflow时所需检查未执行问题求助
问题原因及修复方案
核心问题
你配置的build和deploy使用workflow_run触发,这类Workflow属于仓库级独立运行,不会与发起的PR建立关联。因此GitHub分支保护规则里要求的检查项,无法识别到这两个Workflow的运行状态,导致PR一直显示它们处于expected状态,无法完成合并。
修复步骤
需要调整Workflow的触发方式和依赖逻辑,让build、deploy直接作为PR的检查项,同时保持它们对上游Workflow的依赖:
1. 修改test.yml,允许被其他Workflow调用
保留PR触发逻辑的同时,添加workflow_call声明,让它可以被build调用:
name: GameCI Tests in EditMode on: pull_request: branches: [main, development] workflow_call: # 允许跨Workflow调用 jobs: test: runs-on: ubuntu-latest steps: # 你的测试步骤(保持原有内容不变)
2. 调整build.yml:直接关联PR触发+依赖test
将触发源改为PR到main,同时通过needs依赖test Workflow,确保只有test成功后才运行build:
name: GameCI Build on: pull_request: branches: [main] push: branches: [main] # 可选:合并到main后自动触发build(按需保留) jobs: build: runs-on: ubuntu-latest needs: [GameCI Tests in EditMode] # 依赖test Workflow steps: # 你的构建步骤(保持原有内容不变)
3. 调整deploy.yml:直接关联PR触发+依赖build
同理,让deploy在PR到main时触发,并依赖build Workflow:
name: GameCI Deploy on: pull_request: branches: [main] push: branches: [main] # 可选:合并到main后自动触发deploy(按需保留) jobs: deploy: runs-on: ubuntu-latest needs: [GameCI Build] # 依赖build Workflow steps: # 你的部署步骤(保持原有内容不变)
4. 确认分支保护规则
确保main分支的保护规则里,已添加GameCI Tests in EditMode、GameCI Build、GameCI Deploy这三个检查项。
额外注意点
如果你的dev分支实际名称是dev而非development,需要同步修改test.yml里的branches: [main, dev],避免分支名不匹配导致触发异常。
内容的提问来源于stack exchange,提问作者KamielDev
相关产品推荐
相关产品推荐

