返回文章列表
开发 | CI/CD | 2025-06-30

GitLab CI/CD 基础指南

极狐GitLab

在本初学者指南中学习持续集成/持续交付(CI/CD)的基础知识,包括 CI/CD 组件是什么以及如何创建它们。

 

想象一个工作流,其中每次代码更改都会自动构建、测试并部署给用户。这就是持续集成/持续交付(CI/CD)的强大之处!CI/CD 帮助您及早发现错误、确保代码质量,并更快、更频繁地交付软件。

 

什么是 CI/CD?

  • 持续集成(Continuous Integration):一种开发实践,开发人员频繁(最好每天多次)将代码更改合并到共享存储库中。每次集成都会通过自动化构建和测试流程进行验证,使团队能够及早发现问题。
  • 持续交付(Continuous Delivery):在 CI 的基础上自动化发布流程,确保您的代码始终处于可部署状态。您可以一键或自动将应用程序部署到各种环境(例如预发布环境、生产环境)。
  • 持续部署(Continuous Deployment):更进一步,自动将每个成功的构建部署到生产环境。这需要对自动化测试和部署流程有高度的信心。

为什么选择极狐GitLab CI/CD?

极狐GitLab CI/CD 是一个强大的集成系统,内置在 GitLab 中。它提供了一种无缝的体验,可以自动化整个软件开发生命周期。使用 极狐GitLab CI/CD,您可以:

  • 自动化一切:轻松构建、测试和部署应用程序。
  • 及早发现错误:在生产环境之前检测并修复错误。
  • 获得更快的反馈:即时获取代码更改的反馈。
  • 提高协作效率:通过自动化工作流更高效地协作。
  • 加速交付:更快、更频繁地发布软件。
  • 降低风险:减少部署错误和回滚。

 

极狐GitLab CI/CD 的组成部分

  • .gitlab-ci.yml:位于项目根目录的 YAML 文件,定义了 CI/CD 流水线,包括阶段(stages)、作业(jobs)和运行器(runners)。
  • GitLab Runner:代理程序,在您的基础设施(例如物理机、虚拟机、Docker 容器或 Kubernetes 集群)上执行 CI/CD 作业。
  • 阶段(Stages):定义作业的执行顺序(例如构建、测试、部署)。
  • 作业(Jobs):阶段中的独立工作单元(例如编译代码、运行测试、部署到预发布环境)。

 

设置极狐GitLab CI

开始使用 极狐GitLab CI 非常简单。以下是一个基本的 .gitlab-ci.yml 文件示例:

 

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Building the application..."

test_job:
  stage: test
  script:
    - echo "Running tests..."

deploy_job:
  stage: deploy
  script:
    - echo "Deploying to production..."
  environment:
    name: production

此配置定义了三个阶段:“build”、“test”和“deploy”。每个阶段包含一个执行简单脚本的作业。

 

CI/CD 配置示例

让我们看一些实例。

 

构建和部署 Node.js 应用程序

以下流水线定义使用 npm 构建和测试 Node.js 应用程序,并使用 dpl 将其部署到 Heroku。流水线的部署阶段使用了 极狐GitLab CI/CD 变量,该功能允许开发者存储敏感信息(如凭据)并在 CI/CD 流程中安全使用。在此示例中,用于部署到 Heroku 的 API 密钥存储在变量 $HEROKU_API_KEY 中,供 dpl 工具使用。

 

stages:
  - build
  - test
  - deploy

build:
  stage: build
  image: node:latest
  script:
    - npm install
    - npm run build

test:
  stage: test
  image: node:latest
  script:
    - npm run test

deploy:
  stage: deploy
  image: ruby:latest
  script:
    - gem install dpl
    - dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY

 

部署到不同环境(预发布和生产)

GitLab 还提供了 CI/CD 环境的概念。此功能允许用户跟踪从 CI/CD 到基础设施目标的部署。在以下示例中,流水线为预发布和生产环境添加了带有 environment 属性的阶段。deploy_staging 阶段始终运行其脚本,而 deploy_production 阶段需要手动批准,以防止意外部署到生产环境。

 

stages:
  - build
  - test
  - deploy_staging
  - deploy_production

build:
  # ...

test:
  # ...

deploy_staging:
  stage: deploy_staging
  script:
    - echo "Deploying to staging..."
  environment:
    name: staging

deploy_production:
  stage: deploy_production
  script:
    - echo "Deploying to production..."
  environment:
    name: production
  when: manual  # 需要手动批准

 

GitLab Auto DevOps

GitLab Auto DevOps 通过提供预定义的配置来自动构建、测试和部署您的应用程序,从而简化 CI/CD。它利用最佳实践和行业标准来优化您的工作流。

启用 Auto DevOps:

1、进入项目的 Settings > CI/CD > General pipelines

2、启用 Auto DevOps 选项。

Auto DevOps 会自动检测项目的语言和框架,并配置必要的构建、测试和部署阶段。您甚至不需要创建 .gitlab-ci.yml 文件。

 

CI/CD 目录

CI/CD 目录是一个包含已发布 CI/CD 组件的项目列表,可用于扩展您的 CI/CD 工作流。任何人都可以创建组件项目并将其添加到 CI/CD 目录,或贡献现有项目以改进可用组件。您可以在 GitLab.com 的 CI/CD 目录 中找到已发布的组件。

教程:如何设置您的第一个 极狐GitLab CI/CD 组件

 

CI 模板

您还可以创建自己的 CI 模板,以标准化和跨多个项目复用 CI/CD 配置。这有助于保持一致性并减少重复。

创建 CI 模板:

在专用项目或存储库中创建 .gitlab-ci.yml 文件。

在模板中定义您的 CI/CD 配置。

在项目的 .gitlab-ci.yml 文件中,使用 include 关键字引用模板。

 

将您的开发提升到新水平

极狐GitLab CI/CD 是一个强大的工具,可以改变您的开发工作流。通过理解 CI/CD 的概念、配置流水线,并利用 Auto DevOps、CI/CD 目录和 CI 模板等功能,您可以自动化整个软件开发生命周期,并更快、更高效地交付高质量软件。

极狐GitLab 一体化DevOps平台 专为中国用户研发,免费试用60天专业版高级功能
售前咨询
联系电话
在线支持
预约演示