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

GitHub Actions含下划线的Tag过滤规则失效问题求助

解决GitHub Actions标签匹配含下划线包名的问题

你核心的问题是误用了正则表达式语法——GitHub Actions的tags过滤使用的是glob模式,而非正则表达式,所以+这类正则量词会触发报错。

正确的匹配规则

要同时匹配package_name-v1.2.3和package_name-v1.2.3-dev这类标签,且支持包名包含下划线,可使用以下glob规则:

name: Publish packages
on:
  push:
    tags:
      # 匹配不带后缀的标签(如 package_name-v1.2.3)
      - '[a-z0-9_]*-v[0-9]*.[0-9]*.[0-9]*'
      # 匹配带后缀的标签(如 package_name-v1.2.3-dev)
      - '[a-z0-9_]*-v[0-9]*.[0-9]*.[0-9]*-[a-zA-Z0-9]*'

规则说明

  1. [a-z0-9_]*:匹配包名部分,允许小写字母、数字、下划线,*表示匹配0或多个字符(实际场景中包名不会为空,可放心使用)。
  2. v[0-9]*.[0-9]*.[0-9]*:匹配vX.X.X格式的版本号,[0-9]*匹配任意长度的数字段。
  3. -[a-zA-Z0-9]*:可选的后缀部分,匹配以-开头的字母数字组合。

更严格的版本号匹配(可选)

如果需要确保版本号每段至少有一位数字(避免匹配v.2.3这类无效标签),可把[0-9]*替换为[0-9][0-9]*:

name: Publish packages
on:
  push:
    tags:
      - '[a-z0-9_]*-v[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*'
      - '[a-z0-9_]*-v[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*-[a-zA-Z0-9][a-zA-Z0-9]*'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 20:02:32