GitLab CI/CD #

什么是GitLab CI/CD? #

GitLab CI/CD是GitLab内置的持续集成、持续交付和持续部署平台。它通过.gitlab-ci.yml文件配置,自动执行构建、测试和部署流程,是现代DevOps工作流的核心组件。

GitLab CI/CD的优势 #

优势 说明
内置集成 与GitLab代码仓库无缝集成,无需额外配置
配置即代码 使用YAML文件定义流水线,版本化管理
自动扩展 支持Kubernetes自动扩缩Runner
多平台支持 Linux、Windows、macOS、Docker、Kubernetes
免费使用 GitLab.com免费提供CI/CD功能
可视化界面 直观的流水线图和作业详情

文档结构 #

本指南按以下结构组织,适合初学者按顺序学习:

1. 基础入门 #

主题 描述 文档链接
GitLab CI简介 概念介绍、核心组件、应用场景 gitlab-ci-intro.md
第一个流水线 Hello World、创建第一个Pipeline first-pipeline.md
.gitlab-ci.yml详解 配置文件结构、语法规范 gitlab-ci-yml.md
作业与阶段 Jobs、Stages概念与配置 jobs-stages.md

2. 流水线基础 #

主题 描述 文档链接
流水线类型 Pipeline类型、触发方式 pipeline-types.md
变量与环境 Variables定义、环境变量使用 variables.md
缓存与制品 Cache、Artifacts配置 cache-artifacts.md
条件与规则 only/except、rules配置 conditions-rules.md

3. Runner管理 #

主题 描述 文档链接
Runner基础 Runner概念、类型、注册 runner-basics.md
Runner配置 配置文件、标签、执行器 runner-configuration.md
Runner高级 自动扩缩、监控、维护 runner-advanced.md

4. 高级特性 #

主题 描述 文档链接
模板与继承 include、extends、模板复用 templates-inheritance.md
安全与权限 安全扫描、权限控制、密钥管理 security-permissions.md
父子流水线 Parent-Child Pipeline、多项目流水线 parent-child-pipeline.md
性能优化 并行执行、缓存优化、构建加速 performance-optimization.md

5. 实战案例 #

主题 描述 文档链接
Node.js项目CI/CD npm构建、测试、部署 nodejs-cicd.md
Docker集成 镜像构建、推送、部署 docker-integration.md
Kubernetes部署 K8s集群部署、滚动更新 kubernetes-deployment.md

学习建议 #

初学者路线 #

text
基础入门 → 流水线基础 → Runner管理

进阶路线 #

text
高级特性 → 实战案例 → 生产实践

GitLab CI/CD架构概览 #

text
┌─────────────────────────────────────────────────────────────┐
│                     GitLab Server                            │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐        │
│  │ 代码仓库 │  │ CI/CD   │  │  镜像   │  │  制品   │        │
│  │  (Git)  │  │ 配置    │  │ Registry│  │ Registry│        │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘        │
│                                                              │
│  ┌─────────────────────────────────────────────────────┐   │
│  │              Pipeline Scheduler                      │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘
                            │
              ┌─────────────┼─────────────┐
              ▼             ▼             ▼
        ┌──────────┐  ┌──────────┐  ┌──────────┐
        │ Runner 1 │  │ Runner 2 │  │ Runner 3 │
        │ (Shell)  │  │ (Docker) │  │  (K8s)   │
        └──────────┘  └──────────┘  └──────────┘

GitLab CI vs 其他CI/CD工具 #

特性 GitLab CI GitHub Actions Jenkins CircleCI
部署方式 内置/自托管 云托管 自托管 云托管
配置方式 YAML YAML Groovy/YAML YAML
学习曲线
免费使用 完全免费 有限额度 完全免费 有限额度
容器支持 原生支持 原生支持 插件支持 原生支持
集成度 高(GitLab) 高(GitHub)

学习资源 #

  • 官方文档:GitLab CI/CD Documentation
  • 配置参考:GitLab CI/CD YAML Reference
  • 社区论坛:GitLab Community Forum
  • 推荐书籍:《GitLab CI/CD实战》、《DevOps实践指南》

开始学习 #

准备好了吗?让我们从 GitLab CI简介 开始你的CI/CD学习之旅!

最后更新:2026-03-28