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]*'
规则说明
[a-z0-9_]*:匹配包名部分,允许小写字母、数字、下划线,*表示匹配0或多个字符(实际场景中包名不会为空,可放心使用)。v[0-9]*.[0-9]*.[0-9]*:匹配vX.X.X格式的版本号,[0-9]*匹配任意长度的数字段。-[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
相关产品推荐
相关产品推荐

