5 分钟快速入门 Gitlab CI/CD

作者:yuguo.im日期:2025/12/16

🚀 快速掌握 GitLab CI/CD:自动化你的开发流程

GitLab CI/CD 是一个功能强大的工具,它内置于 GitLab 中,用于自动化你的软件构建、测试和部署流程。如果你希望提升开发效率、减少人为错误并实现持续集成/持续部署(CI/CD),那么掌握它至关重要。

本文将通过最核心的概念、最简单的配置,带你快速入门 GitLab CI/CD。


核心概念:理解 GitLab CI 的基石

在编写你的第一个配置文件之前,理解以下几个关键概念是掌握 GitLab CI 的前提:

1. 配置文件:.gitlab-ci.yml

这是 GitLab CI/CD 的灵魂。它是一个 YAML 格式的文件,你需要在项目的根目录下创建它。这个文件定义了 CI/CD 流程中的所有任务、执行顺序和运行环境。

2. Runner

Runner 是实际执行 .gitlab-ci.yml 文件中定义任务的代理程序

  • 你可以使用 GitLab 提供的共享 Runner
  • 你也可以在自己的服务器或环境中安装和注册特定 Runner,以便更好地控制执行环境和资源。

当你在本地提交代码并推送到 GitLab 后,GitLab 就会通知一个可用的 Runner 来执行 CI/CD 管道(Pipeline)。

3. Pipeline(管道)

Pipeline 是整个 CI/CD 流程的最高级别组件。它包含了一组 Stages(阶段),是基于你的 .gitlab-ci.yml 文件生成的。每一次代码提交,通常都会触发一次 Pipeline 的运行。

4. Stage(阶段)

Stage 定义了 Job(作业)的分组和执行顺序。例如,你可能有一个 build 阶段,一个 test 阶段,和一个 deploy 阶段。

  • 同一 Stage 内的 Job 会并行运行。
  • 只有前一个 Stage 所有 Job 都成功,下一个 Stage 才会开始运行。

5. Job(作业)

Job 是 Stage 中最小的执行单元,也是真正执行命令的地方。每个 Job 都有一个唯一的名称,并定义了要执行的脚本、使用的镜像、运行环境等。


⚙️ 动手实践:编写你的第一个 .gitlab-ci.yml

假设你有一个简单的 Node.js 项目,目标是实现“构建”和“测试”两个阶段。

在项目的根目录下创建 .gitlab-ci.yml 文件,并输入以下内容:

1# 1. 定义阶段 (Stages)
2# 定义了 CI/CD 流程的执行顺序:首先是 build,然后是 test。
3stages:
4  - build
5  - test
6
7# 2. 定义构建作业 (Build Job)
8# job_build: 是作业名称,可以自定义
9job_build:
10  stage: build              # 指定该作业属于 build 阶段
11  image: node:18-alpine     # 指定 Runner 应该使用哪个 Docker 镜像来执行该作业
12  script:                   # 定义要执行的命令列表
13    - echo "--- 开始安装依赖 ---"
14    - npm install
15    - echo "--- 依赖安装完毕 ---"
16  artifacts:                # 定义作业成功后要保存的文件或目录
17    paths:
18      - node_modules/       # 将安装的依赖保存起来,供后续阶段使用
19    expire_in: 1 hour
20
21# 3. 定义测试作业 (Test Job)
22job_test:
23  stage: test               # 指定该作业属于 test 阶段
24  image: node:18-alpine     # 再次指定运行环境
25  script:
26    - echo "--- 正在运行单元测试 ---"
27    - npm test              # 假设你的项目里有定义好的测试脚本
28    - echo "--- 测试完成 ---"
29  needs: ["job_build"]      # 明确依赖 job_build 成功后才运行(虽然 stage 已经保证了顺序,但 explicit needs 更清晰)
30

运行机制解析:

  1. 当你提交并推送这个文件后,GitLab 会触发一个新的 Pipeline。
  2. Pipeline 按照 stages 的顺序执行:build -> test
  3. Build 阶段:
    • job_build 开始运行。
    • Runner 拉取 node:18-alpine 镜像。
    • 执行 npm install
    • 成功后,将 node_modules/ 目录保存为 Artifacts。
  4. Test 阶段:
    • job_test 开始运行。
    • Runner 拉取 node:18-alpine 镜像,并自动恢复 job_build 保存的 Artifacts(即 node_modules)。
    • 执行 npm test
    • 如果测试通过,整个 Pipeline 成功!

进阶配置:让 CI/CD 更强大

掌握了基础配置,你可以利用这些关键指令让 CI/CD 更加灵活:

1. 部署阶段(Deploy Stage)

.gitlab-ci.yml 中添加一个部署 Job:

1# 继承上面的 stages 配置...
2# ...
3
4deploy_staging:
5  stage: deploy
6  image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest # 使用专业的部署镜像
7  script:
8    - echo "--- 开始部署到 Staging 环境 ---"
9    # 这里可以添加部署到 AWS S3, Kubernetes, 或其他服务器的脚本
10    - aws s3 sync ./dist s3://your-staging-bucket
11  environment: staging  # 标记这是一个部署环境
12  only:                 # 只有满足特定条件时才运行此 Job
13    - main              # 仅在 main 分支上运行时才执行部署
14

2. 缓存(Cache)

如果你的 Artifacts 只需要在 Job 之间传递,使用它。如果需要在 Pipeline 之间保持不变,使用 cache

  • artifacts:用于在同一 Pipeline 的 Job 之间传递文件。
  • cache:用于在不同 Pipeline 之间缓存文件,以加快构建速度(例如,缓存 Go Module 或 Maven 依赖)。
1cache:
2  key: ${CI_COMMIT_REF_SLUG} # 使用分支名作为 key
3  paths:
4    - node_modules/
5

3. 使用模板(Templates)

GitLab 提供了许多预设的 CI/CD 模板(如 Nodejs.gitlab-ci.yml),你可以通过 include 关键字直接导入和使用,大大简化配置:

1include:
2  - template: Auto-DevOps.gitlab-ci.yml # 引入 GitLab 提供的 Auto-DevOps 模板
3

总结与下一步

恭喜你,现在你已经掌握了 GitLab CI/CD 的核心工作原理和基础配置!

概念作用配置文件中的关键字
PipelineCI/CD 流程的整体执行体(无,自动生成)
Stage定义作业的执行顺序和分组stages
Job执行具体命令的最小单元job_name:
Runner实际执行命令的代理程序tags (用于选择特定 Runner)
Artifacts在同一 Pipeline 的 Job 之间传递文件artifacts

你的下一步:

  1. 在你自己的 GitLab 项目中创建 .gitlab-ci.yml 文件。
  2. 将上面的示例代码复制进去并提交。
  3. 进入 GitLab 项目的 CI/CD > Pipelines 页面,查看你的第一个 Pipeline 运行情况。

5 分钟快速入门 Gitlab CI/CD》 是转载文章,点击查看原文


相关推荐


这5个AI文本可视化工具太强了!一键把文本转信息图、流程图等多种可视化形式!PPT秒变高级!(建议收藏)
程序员X小鹿2025/12/8

大家好,我是X小鹿。 前几天被读者问到了「文本可视化」工具,趁着周末,整理了下之前体验过的几款还不错的 AI 工具。 这些 AI 工具都可以一键将枯燥的文本,转化为精美信息图、数据图、卡片等形式。 不管是在项目汇报中插入,还是用于 PPT 配图、文章配图、生成科普图文、读书笔记卡片、自媒体图文创作等场景,都是可以的。 下面分享 5 个目前国内外用得较多「文本可视化」工具。 有需要的可以保存下,早晚用得上~ 一、Seede AI 第一个,Seede AI,一款适合普通人上手的 AI 设计工具,国内


从客户端自适应码率流媒体迁移到服务端自适应码率流媒体
AKAMAI2025/11/28

流媒体平台需要扩展以容纳数百万在不同设备和网络条件下同时观看的观众,这使得高效的自适应码率(ABR)流媒体技术至关重要。在这篇博文中,我们将探讨从客户端 ABR 过渡到服务端 ABR 的技术细节,重点关注实现细节和性能优化。 如您所在的企业也在考虑采购云服务或进行云迁移, 点击链接了解Akamai Linode解决方案,现在申请试用可得高达500美元专属额度 自适应码率流媒体基础 自适应码率流媒体究竟是如何工作的?让我们一步步来看。首先,视频内容需要经过准备,即将其编码为多种码率(例如 5


从字符游戏到 CPU 指令集:一道算法题背后的深度思维跃迁
ToddyBear2025/12/24

"Simplicity is the ultimate sophistication." — Leonardo da Vinci 前言:很多时候,一道看似简单的算法题,不仅是代码能力的试金石,更是计算机底层思维的显微镜。本文记录了一次关于“查找 K-th 字符”问题的深度探讨。我们不满足于“做出来”,而是试图通过逆向工程,从直觉出发,推导出数学原理,最终触达硬件指令集的设计哲学。 🟢 第一部分:面试极速备忘录 (Executive Summary) 为了方便日后快速回顾(如面试前 5


2025年度总结之-如何构建 2025 专属的 GitHub AI 项目情报库
CoderJia_2026/1/3

背景 为什么做 为了更好地追踪 2025 年涌现的 AI 开源项目,我经常浏览 Github 热榜 并整理分享。但手动查阅难免会有遗漏,为此,我计划开发一套自动化工具来采集 Github 热榜数据,旨在辅助个人技术积累的同时,也为博客内容提供持续的素材来源。下文将详细介绍我的技术实现思路,若有设计不足之处,恳请各位读者指正。 如何制作 在该流程的初始阶段,核心任务是构建针对 GitHub 热榜(Trending)页面的数据采集机制。需要分别按照日(Daily)、周(Weekly)及月(M


Claude Skills:Agent 能力扩展的新范式
清沫2026/1/11

为什么需要 Skills? 2025 年被称为智能体元年。各类 Agent、子 Agent、MCP 工具及自动化流水线迅速出现,让 AI 可以接手越来越多真实工作。比如 Claude Code 推出的 Agent 模块,或通过可视化平台、LangChain 开发的各种工具。 随着智能体功能增强,需要更具可组合性、可扩展性和可移植性的方法,为它们配备特定领域专业知识。这促使智能体 Skills 诞生:智能体可动态发现并加载包含指令、脚本和资源的文件夹,从而更好完成特定任务。 什么是 Skills?


【AI大模型开发】-基于FAISS的语义搜索系统(实战)
Java后端的Ai之路2026/1/19

向量数据库实战:基于FAISS的语义搜索系统 一、项目概述 1.1 什么是向量数据库? 向量数据库是一种专门用于存储、索引和检索高维向量数据的数据库系统。在AI领域,向量通常是指通过预训练模型(如Transformer)将文本、图像等非结构化数据转换而成的数值表示(Embedding)。 1.2 项目背景 本项目展示了如何使用阿里云百炼Embedding API生成文本向量,并结合FAISS(Facebook AI Similarity Search)构建一个简单但功能完整的语义搜索系统。 1.

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客