deepwzh的技术笔记
  • Golang
  • Python
  • Cpp
杂项
前端开发
  • 计算机网络
  • 操作系统
  • 数据库
云原生
Devops
AIGC
关于作者
  • Golang
  • Python
  • Cpp
杂项
前端开发
  • 计算机网络
  • 操作系统
  • 数据库
云原生
Devops
AIGC
关于作者
  • Devops
  • Tailscale
  • Clash
  • Certbot
  • Prometheus
  • Cloudflare SSL 完全模式配置指南
  • Gitlab

    • Gitlab
    • Release 功能
    • 流水线

      • 流水线
      • 组件
  • Jenkins

    • Jenkins
    • Node
  • 对象存储

    • 对象存储
    • web 工具
    • 常用工具
  • Github

    • Github
    • Pull Request
    • Fork
    • 加速
    • Github Action

      • Github Action
      • 触发方式
      • 缓存 Cache
  • Ioc基础设施即代码

    • Ioc 基础设施即代码
    • gitops
    • Terraform
    • Ansible

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,具体通过:

  1. 定义 release Job 或调用 API 创建 Release。
  2. 使用提交追踪器或 Changelog API 生成 Change Log。
  3. 可选结合第三方工具(如 conventional-gitlab-releaser)增强功能。
Prev
Gitlab