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

如何在GitLab CI/CD中动态设置环境变量实现版本自增与Git打标签

GitLab CI自动递增版本号并打标签实现方案

前置准备

  • 提前在项目「设置」-「CI/CD」-「变量」中创建名为VERSION的整数类型变量,填入初始版本号,不要设置仅受保护分支可见,确保合并请求流水线可读取该变量
  • 你使用的GITLAB_PERSONAL_ACCESS_TOKEN需要开通api权限,且对当前项目拥有Maintainer及以上权限,用于调用GitLab接口更新CI变量

完整可运行CI配置

variables: 
  PROFILE_NAME: default

default:
  image: docker-image

stages: 
  - tagging

Tag:
  stage: tagging
  script:
    # 安装依赖
    - yum install git curl -y
    - git --version
    # 配置git仓库权限
    - git remote set-url --push origin ${CI_SERVER_PROTOCOL}://${GITLAB_PERSONAL_ACCESS_TOKEN_NAME}:${GITLAB_PERSONAL_ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git
    - git config --global user.name "GitLab CI"
    - git config --global user.email "ci@example.com"
    # 拉取最新标签避免冲突
    - git fetch --tags
    # 版本号自增
    - NEW_VERSION=$((VERSION + 1))
    - echo "新版本号:${NEW_VERSION}"
    # 回写新版本号到GitLab项目CI变量
    - |
      curl --request PUT \
      --header "PRIVATE-TOKEN: ${GITLAB_PERSONAL_ACCESS_TOKEN}" \
      "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/variables/VERSION" \
      --form "value=${NEW_VERSION}"
    # 打版本标签,标签格式可自行修改
    - git tag -a v${NEW_VERSION} -m "自动发布版本 v${NEW_VERSION}"
    - git push origin v${NEW_VERSION}
  only:
    refs:
      - merge_requests
    variables:
      - ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^dev/ || $CI_COMMIT_BRANCH =~ /^dev/ || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^release-/ || $CI_COMMIT_BRANCH =~ /^release-/)
  except:
    variables:
      - ($CI_COMMIT_BEFORE_SHA == '0000000000000000000000000000000000000000' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME !~ /^./)

核心改动说明

  • 修正了原配置中stage名称不匹配的问题,任务stage和全局stages定义对齐
  • 新增curl工具安装,用于调用GitLab OpenAPI完成CI变量更新
  • 新增git用户配置,避免打标签时无用户信息报错
  • 新增版本号回写逻辑,通过GitLab官方接口将自增后的版本号持久化存储到项目CI变量中
  • 补充了实际打标签、推送标签的逻辑,原配置仅执行了空的标签推送命令
  • 你可根据需求修改标签命名规则,如需带小数点的版本号可调整自增逻辑适配语义化版本规则

内容的提问来源于stack exchange,提问作者H.Chloe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:54:00