Gitlab如何针对打标签的版本/发布版触发部署作业?
GitLab 基于发布版本触发部署实现方案
实现原理
- GitLab的发布版本和Git标签是一一绑定的,每个发布版本对应唯一的标签,选中指定发布版本本质是选中该版本绑定的标签作为部署的代码基准版本。
- 调整部署Job的触发规则:在原有master分支触发的规则基础上,新增对标签事件的匹配,让标签对应的流水线也能加载到部署Job。
- 部署执行时,流水线会默认拉取当前标签指向的代码提交记录,无需修改原有部署脚本的代码拉取逻辑即可完成对应版本的部署。
- 保留
when: manual配置即可维持手动触发的逻辑,避免版本推送后自动部署。
下拉菜单选择发布版本触发部署实现
你可以通过GitLab CI的可选变量功能实现下拉选版本的效果,操作如下:
- 调整
gitlab-ci.yml配置,新增部署版本选择变量,同时调整部署Job规则:
# 全局变量定义部署版本选项,可根据你的实际发布版本更新options列表 variables: DEPLOY_VERSION: description: "请选择要部署的发布版本" value: "latest" options: - "v1.0.0" - "v1.1.0" - "v1.2.0" - "latest" deploy_prod: stage: deploy # 仅在手动触发流水线、或标签推送、master分支更新时加载该Job rules: - if: $CI_PIPELINE_SOURCE == "web" when: manual - if: $CI_COMMIT_TAG when: manual - if: $CI_COMMIT_BRANCH == "master" when: manual script: # 若选择的不是最新版本,切换到对应标签的代码版本 - if [ "$DEPLOY_VERSION" != "latest" ]; then git checkout $DEPLOY_VERSION; fi # 保留原有部署逻辑即可 - ./your-deploy-script.sh
- 触发方式:进入项目左侧CI/CD > 流水线页面,点击右上角「运行流水线」,即可看到
DEPLOY_VERSION的下拉选择框,选中要部署的版本后运行流水线,再手动触发部署Job即可完成指定版本部署。
如果你不想每次新增版本都手动更新yml中的options列表,可以通过GitLab OpenAPI拉取项目所有发布版本列表,配合CI变量动态注入实现选项自动同步,适合版本迭代频繁的项目使用。
内容的提问来源于stack exchange,提问作者Boommeister
相关产品推荐
相关产品推荐

