You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写GitLab CI配置,合并代码至master分支后自动创建Release

实现GitLab合并master时自动创建Release的CI配置

可以通过自定义gitlab-ci.yml配置实现需求,核心是利用GitLab CI的原生release关键字或官方release-cli工具,在master分支部署完成后自动生成带日期时间的Release记录。

完整配置示例(推荐原生关键字方案)

假设你已有针对master分支的部署流程,只需新增一个创建Release的任务:

stages:
  - deploy
  - create_release

# 你已有的部署任务
deploy_to_production:
  stage: deploy
  only:
    - master
  script:
    - echo "执行你的部署命令..."
    # 这里替换为你实际的部署脚本

# 新增的自动创建Release任务
create_gitlab_release:
  stage: create_release
  only:
    - master
  needs: [deploy_to_production] # 确保部署成功后再生成Release
  script:
    - echo "生成Release标签: release-v$(date +%Y%m%d-%H%M%S)"
  release:
    tag_name: "release-v$(date +%Y%m%d-%H%M%S)"
    description: "自动发布记录:代码合并至master分支"

关键配置说明

  • 触发条件:only: [master]限定任务仅在代码合并到master分支时执行
  • 依赖控制:needs确保只有部署任务成功完成后,才会创建Release,避免生成无效发布记录
  • 标签格式:release-v$(date +%Y%m%d-%H%M%S)生成包含固定标识+精确日期时间的标签(如release-v20240520143000),格式可根据需求调整(比如改为release-v2024-05-20_14-30-00)
  • 原生Release关键字:GitLab CI会自动基于配置的标签创建Release页面,无需额外工具,操作简洁

备选方案(使用release-cli工具)

如果你的GitLab版本不支持原生release关键字,可使用官方提供的release-cli镜像实现:

create_gitlab_release:
  stage: create_release
  only:
    - master
  needs: [deploy_to_production]
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  script:
    - |
      RELEASE_TAG="release-v$(date +%Y%m%d-%H%M%S)"
      release-cli create \
        --name "Release $RELEASE_TAG" \
        --tag-name "$RELEASE_TAG" \
        --description "自动发布记录:代码合并至master分支"

注意事项

  • GitLab CI的服务账号默认拥有创建Release的权限,无需额外配置权限
  • 标签名称需符合Git标签规范:仅包含字母、数字、-、_、.,不能有空格或特殊字符
  • 若部署任务失败,创建Release的任务会自动跳过,保证发布记录与实际部署状态一致

内容的提问来源于stack exchange,提问作者user2188158

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:20:20