标签发布流水线是什么
以版本标签作为发布入口:标签不可移动(语义上不应被删除重建),天然适合绑定制品与发布记录,配合保护标签限制创建权限,让发布入口成为受控动作。触发方式:推送符合约定的标签(如 v1.8.0)自动进入发布流水线,产物与提交、标签一一对应。与分支发布相比,标签发布解决了分支头持续移动、无法精确指认发布内容的问题。
基本信息
| 触发 | 推送符合约定的标签(如 v1.8.0) |
|---|---|
| 产物 | 按标签生成版本号并打制品与镜像标签 |
| 溯源 | 制品与提交、标签一一对应 |
| 保护 | 保护标签限制谁能创建与删除 |
| 校验 | 用正则校验命名格式,拒绝随意标签进入发布 |
典型使用场景
- 正式版本发布:标签触发构建、发布制品并生成发布说明。
- 预发布通道:预发布标签走同一条管道但标记为非正式版本。
- 溯源审计:制品版本、标签与提交三方对齐可查。
- 统一入口:禁止从分支直接产出正式版本,全部走标签。
- 多组件仓库:各组件用标签前缀区分,避免互相触发。
- 回滚指认:回滚目标就是上一个标签对应的制品。
GitLab 标签规则
GitLab 标签规则
release:
rules:
- if: $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/
script: ./ci/release.shGitHub 标签触发
GitHub 标签触发
on:
push:
tags: ['v*.*.*']标签可以删除重建造成歧义:用保护标签限制谁能创建与删除,发布入口才真正受控。
标签发布与回滚策略配套:回滚就是重新部署上一标签的制品,前提是制品不可变。
标签触发的流水线里变量环境与分支不同:分支相关变量可能为空,条件判断要针对标签场景单独设计。