You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置GitHub Actions让deploy workflow仅在push触发CI完成后运行,避免PR误触发

问题根因

你的deploy workflow被误触发的核心原因是:CI workflow配置了pull_request事件触发,当你提交从develop到main的PR时,CI会被PR事件触发运行,运行完成后满足deploy的workflow_run触发规则(关联CI workflow、源分支是develop、运行完成),所以deploy被启动。

修复方案

你只需要在deploy workflow的根级别添加全局if判断,过滤非push事件触发的CI运行即可,修改后的deploy配置如下:

name: deploy

on:
  release:
    types: [released]
  workflow_run:
    workflows: ["ci"]
    branches: [develop]
    types: [completed]

# 新增全局过滤条件
if: |
  github.event_name == 'release' || 
  (github.event.workflow_run.event == 'push' && github.event.workflow_run.conclusion == 'success')

jobs:
  # 你原有部署任务的配置保持不变
  ...
配置说明
  • github.event.workflow_run.event 字段可以获取到上游CI workflow的触发事件类型,此处判断仅允许push事件触发的CI运行完成后执行部署,自动过滤所有PR事件触发的CI运行
  • github.event.workflow_run.conclusion == 'success' 是额外加的防护逻辑,确保只有CI运行成功后才触发部署,避免CI失败后依然执行部署操作
  • 原有release触发部署的逻辑不受任何影响

内容的提问来源于stack exchange,提问作者xmartinez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:27:05