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
相关产品推荐
相关产品推荐

