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

GitHub Actions中release.yml工作流未触发,求排查原因

问题:GitHub Actions的release.yml未被带注释标签触发

我的项目在.github/workflows目录下有两个YAML文件:

build.yml
release.yml

我使用**带注释的标签(annotated tags)**进行版本发布,build.yml的触发器配置如下:

on:
  push:
    paths-ignore:
      - 'images/**'
      - README.md
    branches:
      - master
    tags:
      - 'v*.*.*'
  pull_request:
    branches:
      - master

release.yml的触发器配置如下:

on:
  push:
    # Sequence of patterns matched against refs/tags
    tags:
      - '[0-9]+.[0-9]+.[0-9]+'

我执行了以下命令推送新的带注释标签:

git tag -a v0.0.3-SNAPSHOT -m "My very third tag with release" 
git push origin --tags

原本预期release.yml会被触发,但实际并未生效,请问问题出在哪里?


原因与解决办法
  • 标签匹配规则不匹配
    你的release.yml里的标签规则是[0-9]+.[0-9]+.[0-9]+,这个表达式只能匹配纯数字版本号(比如0.0.3),但你推送的标签是v0.0.3-SNAPSHOT,包含前缀v和后缀-SNAPSHOT,完全不符合规则,所以不会触发。

  • GitHub Actions标签匹配逻辑
    GitHub Actions的标签匹配是基于完整标签名的,规则必须精准覆盖标签的整体结构。另外要注意,当push触发器同时指定branches和tags时(比如build.yml),会触发分支或标签的推送事件,但release.yml只监听标签,所以规则必须完全匹配标签格式。

  • 修改方案
    根据你实际使用的标签格式vX.X.X-SNAPSHOT,把release.yml的标签规则改成能匹配该格式的表达式:

    on:
      push:
        tags:
          - 'v[0-9]+.[0-9]+.[0-9]+-SNAPSHOT'
    

    如果需要同时匹配正式版本(比如v1.0.0)和快照版本,也可以用更通用的规则:

    on:
      push:
        tags:
          - 'v[0-9]+.[0-9]+.[0-9]+*'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:35:25