如何在GitHub Actions中按事件类型条件调用可复用工作流?
解决可复用工作流的条件执行与部署作业始终运行问题
问题分析
你之前的配置未生效,主要有两个核心问题:
- 条件位置错误:
if需要放在作业的顶级属性中,而非uses字段前 - 变量名误用:GitHub Actions中表示事件类型的正确变量是
github.event_name,而非github.event_type
另外,由于deploy依赖run-tests,默认情况下若run-tests被跳过,deploy也会随之跳过,需要额外配置确保部署始终执行。
修正后的代码示例
jobs: run-tests: # 仅当事件类型不是push时执行测试工作流 if: github.event_name != 'push' uses: ./.github/workflows/build-and-test.yml deploy: # 依赖测试作业完成,但强制始终执行部署 needs: run-tests if: always() runs-on: ubuntu-latest steps: ...
关键说明
if: github.event_name != 'push':将条件放在run-tests作业的顶级层级,直接控制整个作业是否触发if: always():让deploy作业无视run-tests的状态(成功、失败、跳过),始终执行,满足你"部署始终运行"的需求
内容的提问来源于stack exchange,提问作者andrei
相关产品推荐
相关产品推荐

