首页/开发/CI/CD 与发布速查/GitLab CI 的 environment 与部署跟踪
工具链要点63 条

GitLab CI 的 environment 与部署跟踪

声明作业对应的部署环境:GitLab 记录每次部署的版本与时间,支持环境级停止(on_stop)、回滚查看与受保护环境审批。

CI/CD 与发布速查开发更新于 2026-10-13

environment 与部署跟踪是什么

在 GitLab CI 中声明作业对应的部署环境:GitLab 会记录每次部署的版本、时间与操作人,支持环境级停止、部署历史查看与受保护环境审批。评审环境使用随分支变化的动态名称批量创建,配合停止作业用完即清。这些记录是发布审计与回滚定位的基础数据,也是「谁在何时把哪个版本部署到哪」的答案。没有声明环境的部署作业不会出现在环境页面,部署记录也就缺失,事后无法追溯。

基本信息

写法environment 下声明 name 与 url
动态名评审环境用分支标识派生的动态名称
停止on_stop 关联停止作业回收环境
治理受保护环境可要求审批后才允许部署
记录每次部署的版本、时间与提交可查
停止语义action: stop 标记该作业用于回收环境
取名建议名称稳定可读,动态名要能回溯到分支

部署与停止作业

部署与停止作业
deploy-staging:
  stage: deploy
  script: [./deploy.sh staging]
  environment:
    name: staging
    url: https://staging.example.com
# 评审环境:动态名 + 停止作业
stop-review:
  stage: deploy
  when: manual
  script: [./teardown.sh]
  environment:
    name: review/$CI_COMMIT_REF_SLUG
    action: stop

能力对照

能力配置效果
部署记录environment.name版本与时间写入历史
评审环境动态 name每个分支一套环境
环境回收action: stop手动或自动清理
上线审批受保护环境设置部署前需要批准

典型使用场景

  • 固定环境(测试、预发):名称稳定,部署历史集中可查
  • 评审环境:按分支动态创建,评审结束手动或自动清理
  • 受保护环境:生产部署要求审批,防止误操作直接上线
  • 回滚定位:通过部署历史找到上一个正常版本及其提交
  • 发布审计:回答谁在何时把哪个版本部署到哪个环境
  • 多环境链路:测试、预发、生产各自声明环境,形成从构建到上线的完整部署轨迹
环境记录让「谁在什么时候把哪个版本部署到哪」可查,是发布审计的基座。环境页同时提供重新部署与回滚入口,与版本记录配合使用。
停止作业可以设为手动触发或随分支合并自动执行,按团队清理节奏选择。环境页同时提供重新部署与回滚入口,与版本记录配合使用。

易错点

  • 评审环境只建不停:动态环境堆积,资源长期占用
  • environment 名用变量但不设置停止作业:清理只能靠手动
  • url 填错:环境页链接指向不存在地址,点击无法访问
  • 生产环境未设受保护:任意分支流水线都能直接部署,风险敞口大

数据来源与参考

  • GitLab Docs《Environments》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌