如何让GitHub Actions部署工作流在发布触发的测试工作流后执行?
解决GitHub Actions部署工作流无法被Release触发的测试工作流唤起的问题
问题核心是:当通过Release触发测试工作流时,GitHub会把工作流的显示名称替换成Release标签(比如v1.2.3),但部署工作流的workflow_run规则用的是工作流的显示名称run-tests来匹配,导致匹配失败。
直接解决方案
把部署工作流中workflows字段的值从工作流显示名称改成测试工作流的文件路径,这样不管触发场景下显示名称怎么变,都能精准匹配到对应的工作流。
修改后的部署工作流配置示例:
name: deploy on: workflow_run: workflows: [".github/workflows/run-tests.yml"] # 替换为你的测试工作流实际文件路径 branches: [main] types: - completed jobs: deploy: if: ${{ github.event.workflow_run.conclusion == 'success' }} # 这里写你的部署步骤
原因说明
GitHub Actions中,workflow_run的workflows字段既可以填工作流的显示名称,也可以填工作流文件的相对路径。当用显示名称时,会受触发场景影响(比如Release触发时会被替换为标签名),而文件路径是固定不变的,用它来匹配工作流更可靠,不会出现名称不匹配的问题。
另外要确认:测试工作流触发时的分支确实是main(如果你的部署工作流限制了branches: [main]),如果Release是从其他分支创建的,需要调整这个分支规则或者移除它。
内容的提问来源于stack exchange,提问作者zaplec
相关产品推荐
相关产品推荐

