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

Github Actions:如何在标签推送且前置工作流成功时触发Release?

解决GitHub Actions拆分流水线后标签推送无法触发Release的问题

问题核心:通过workflow_run触发的工作流,其上下文里的github.ref指向仓库默认分支,而非触发上游工作流的标签/分支,导致你当前的Release工作流标签判断逻辑失效。

直接解决方案

修改release.yaml中的if条件,将判断当前工作流的github.ref改为判断上游工作流的触发Ref:

jobs:
  release:
    name: Release
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'success' && startsWith(github.event.workflow_run.ref, 'refs/tags/v') }}

原理说明

当推送标签时:

  1. CI工作流被标签Ref(如refs/tags/v1.2.3)触发运行
  2. Sonar工作流通过workflow_run监听CI完成后启动,此时github.event.workflow_run.ref会保留CI的触发Ref(即目标标签)
  3. Release工作流检查该Ref是否符合标签规则,同时确认Sonar运行成功,即可正确触发发布流程

可选优化:避免PR触发误启动

如果需要严格限制Release仅在标签推送场景触发,可补充判断上游工作流的触发事件为push(排除PR触发的CI流程):

if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'push' && startsWith(github.event.workflow_run.ref, 'refs/tags/v') }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:00:12