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

如何限制Github Action在Release触发时仅执行一次?

解决GitHub Action在Release操作时重复触发的问题

当你使用on: release时,GitHub会响应Release相关的所有动作事件(比如创建、发布、标记预发布、编辑、删除等),所以创建预发布版时会同时触发created、prereleased、published多个事件,导致Workflow多次运行。要实现每次用户交互仅触发一次,可以通过以下两种方式处理:

方法一:指定监听的Release事件类型

直接在release事件下配置types,只监听你需要的特定动作,避免触发重复事件。比如你想在发布(含正式版/预发布版)、编辑、删除时各触发一次,可配置如下:

name: Test

on:
  release:
    types: [published, edited, deleted] # 根据需求选择合适的事件类型
  workflow_dispatch:

jobs: 
  #... 你的任务内容

常用的Release事件类型说明:

  • published: 发布Release(包括草稿转为正式/预发布,或直接发布正式/预发布版),此事件在用户完成发布操作后仅触发一次
  • created: 创建Release(包括草稿、预发布、正式版的初始创建)
  • edited: 编辑Release的信息(如标题、描述等)
  • deleted: 删除Release

如果只需要在用户完成预发布/正式发布操作时触发一次,仅保留published即可,这样就能避免创建过程中的多次触发。

方法二:在Job中添加条件判断

保留原有的on: release配置,但在具体Job中通过if条件过滤,只在特定动作事件下执行任务:

name: Test

on:
  release:
  workflow_dispatch:

jobs:
  your-job:
    runs-on: ubuntu-latest
    # 仅当事件动作为published时执行,可替换为你需要的其他动作类型
    if: github.event.action == 'published'
    steps:
      #... 你的步骤内容

这种方式更灵活,适合需要监听多个事件但部分Job仅需响应特定动作的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:17:57