Release 功能
2. 自动生成 Release
GitLab 的 Release 功能通过 Git 标签(Tag)标识代码版本,并支持以下自动化方式:
• 通过 CI/CD 流水线自动创建 Release:在 .gitlab-ci.yml 中定义 release Job,调用 GitLab 的 Release API 或使用内置的 release 关键字,结合版本号(如 CI_COMMIT_TAG)自动生成 Release。
• 示例配置:
release_job:
stage: release
script:
- curl -X POST --header "PRIVATE-TOKEN: $CI_API_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/releases" -d "tag_name=$CI_COMMIT_TAG&description=Auto-generated release"
3. 自动生成 Change Log
GitLab 提供了 Changelog API 和提交追踪器(Commit Trailers)来自动生成 Change Log:
• 提交追踪器:在提交信息(Commit Message)末尾添加结构化标签(如 Changelog: added),GitLab 会解析这些信息并生成 Change Log。
• Changelog API:通过 API 获取两个版本间的提交记录,自动生成变更内容。例如:
curl -H "PRIVATE-TOKEN: $CI_API_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/changelog?version=$CI_COMMIT_TAG"
4. 第三方工具支持
• **conventional-gitlab-releaser**:基于约定式提交(如 Angular 规范)自动生成 Release 和 Change Log。
• 极狐 GitLab:针对中国用户的 GitLab 发行版,提供了更简化的自动发布流程和文档支持。
总结
GitLab 的 CI/CD 流水线可以完全实现自动生成 Release 和 Change Log,具体通过:
- 定义
releaseJob 或调用 API 创建 Release。 - 使用提交追踪器或 Changelog API 生成 Change Log。
- 可选结合第三方工具(如
conventional-gitlab-releaser)增强功能。