GitHub Action release分支条件ref判断不生效问题求助
GitHub Action条件判断未生效的原因及修复方案
核心原因
github.ref格式匹配错误
分支对应的github.ref完整格式是refs/heads/<分支名>,比如你的release/test分支,实际github.ref的值是refs/heads/release/test。但你写的条件是github.ref == 'ref/head/release/*',存在两处格式错误:- 缺少复数后缀:应为
refs而非ref,heads而非head - 精确匹配无法识别通配符:
==是严格精确匹配,不能用*来模糊匹配分支路径
- 缺少复数后缀:应为
匹配逻辑不符合需求
你需要匹配所有以release/开头的分支,但原条件用精确匹配+错误格式,导致分支场景下条件永远不成立。
修复后的条件语句
针对你“所有release/开头的分支+包含/tags/release的标签”的需求,正确的if条件应为:
if: startsWith(github.ref, 'refs/heads/release/') || contains(github.ref, '/tags/release')
额外补充(可选)
如果需要标签推送也触发该工作流,需在on.push中补充标签触发规则,比如:
on: push: branches: - main - release/* tags: - 'release-v*' # 匹配你设置的TAG_PREXIX开头的标签
内容的提问来源于stack exchange,提问作者me-me
相关产品推荐
相关产品推荐

