构建制品是什么
构建输出中需要被保存、传递与部署的那部分:二进制、容器镜像、包文件、前端静态资源或归档文件。判定标准是部署与回滚所需要的最小完整集合;存放位置是制品库(Nexus、Artifactory、Harbor、云镜像仓库)而不仅是 CI 缓存。制品应带来源信息(提交号、构建号)与校验和:出现线上版本问题时能快速确认部署的到底是什么,而不是靠猜。
基本信息
| 常见形态 | jar 与 war、二进制、npm 与 pip 包、容器镜像、归档、前端 dist |
|---|---|
| 判定标准 | 部署与回滚所需要的最小完整集合 |
| 存放 | 制品库(Nexus、Artifactory、Harbor、云仓库)而非只放 CI 缓存 |
| 伴随信息 | 校验和、提交号、构建号、物料清单 |
| 命名要求 | 含版本号且只增不改(不可变) |
典型使用场景
- 发布对象:部署与回滚以制品为单位,不是以仓库里的代码为单位。
- 审计取证:回答生产运行的是哪个提交,靠制品的来源信息。
- 安全检查:制品入库时做病毒与漏洞扫描,拦截被污染的构建产物。
- 对外交付:给客户的安装包与镜像同样按制品管理。
- 离线交付:归档制品用哈希校验保证传输完整性。
- 清理策略:按保留策略定期瘦身,长期归档与短期构建分开管理。
制品清单示例
制品清单示例
app-1.8.0.jar # 部署对象
app-1.8.0.jar.sha256 # 校验和,防篡改防损坏
sbom-1.8.0.cdx.json # 软件物料清单
build-info-1.8.0.json # 提交号、构建号、流水线链接构建信息文件随制品归档:排查线上版本问题时省去大量猜测,回滚时也能确认目标内容。
容器镜像同样是制品:镜像仓库应启用不可变标签或按摘要引用,防止标签被覆盖后内容漂移。
构建环境也要可追溯:本机构建后手工上传的产物难以复现,正式制品应由受控流水线产出。