GitLab CI/CD

原文:https://docs.gitlab.com/ee/ci/README.html

GitLab CI/CD

GitLab CI / CD 是 GitLab 内置的工具,用于通过连续方法进行软件开发:

  • 持续集成(CI)
  • 连续交付(CD)
  • 持续部署(CD)

注意:开箱即用的管理系统可以将维护工具链所花费的时间减少 10%或更多. 观看我们的“精通持续软件开发”网络广播,以了解连续方法以及 GitLab 的内置 CI 如何帮助您简化和扩展软件开发.

Overview

持续集成的工作原理是将小的代码块推送到 Git 存储库中托管的应用程序代码库中,并且每次推送时,都要运行脚本管道来构建,测试和验证代码更改,然后再将其合并到主分支中.

持续交付和部署包括进一步的 CI,可在每次推送到存储库默认分支时将应用程序部署到生产环境.

这些方法使您可以在开发周期的早期发现错误和错误,从而确保部署到生产环境的所有代码均符合为应用程序建立的代码标准.

有关这些方法和 GitLab CI / CD 的完整概述,请阅读 GitLab 的 CI / CD 简介 .

GitLab CI / CD 的视频演示: 演示: GitLab 的 CI / CD.

Getting started

GitLab CI / CD 由位于存储库根目录的名为.gitlab-ci.yml的文件配置. 该文件创建管道 ,该管道运行以更改存储库中的代码. 管道包含一个或多个顺序运行的阶段,每个阶段可以包含一个或多个并行运行的作业. 这些作业(或脚本)由GitLab Runner代理执行.

要开始使用 GitLab CI / CD,我们建议您通读以下文档:

如果您要从其他 CI / CD 工具迁移,请查看我们方便的参考资料:

您也可以使用 UI 中提供的.gitlab-ci.yml模板之一来开始使用. 您可以通过创建新文件,选择适合您的应用程序的模板并根据需要进行调整来使用它们:

Use a `.gitlab-ci.yml` template

有关更广泛的概述,请参阅《 CI / CD 入门指南》.

熟悉 GitLab CI / CD 的工作原理后,请参阅.gitlab-ci.yml完整参考,以获取可以设置和使用的所有属性.

注意: GitLab CI / CD 和共享运行器在 GitLab.com 中启用,并且对所有用户可用,仅限于用户的管道配额 .

Concepts

GitLab CI / CD 使用许多概念来描述和运行您的构建和部署.

Concept Description
Pipelines Structure your CI/CD process through pipelines.
Environment variables 根据变量/值键对重用值.
Environments 将您的应用程序部署到不同的环境(例如,登台,生产).
Job artifacts 输出,使用和重用作业工件.
Cache dependencies 缓存您的依赖项以加快执行速度.
GitLab Runner 配置自己的 GitLab 运行程序以执行脚本.

Configuration

GitLab CI / CD 支持多种配置选项:

Configuration Description
Schedule pipelines 计划管道以根据需要运行.
Custom path for .gitlab-ci.yml 为 CI / CD 配置文件定义自定义路径.
Git submodules for CI/CD 配置作业以使用 Git 子模块.
SSH keys for CI/CD 在 CI 管道中使用 SSH 密钥.
Pipeline triggers 通过 API 触发管道.
Pipelines for Merge Requests 设计用于在合并请求中运行管道的管道结构.
Integrate with Kubernetes clusters 将您的项目连接到 Google Kubernetes Engine(GKE)或现有的 Kubernetes 集群.
Optimize GitLab and Runner for large repositories 处理大型存储库的推荐策略.
.gitlab-ci.yml full reference 您可以在 GitLab CI / CD 中使用的所有属性.

请注意,某些操作只能根据用户作业权限执行.

Feature set

使用庞大的 GitLab CI / CD 可以轻松地针对特定目的进行配置. 根据 DevOps 阶段,其功能集在下表中列出.

Feature Description
Configure
Auto DevOps 设置应用的整个生命周期.
ChatOps 从聊天中触发 CI 作业,并将结果发送回通道.
Verify
Browser Performance Testing 快速确定即将发生的代码更改对浏览器性能的影响.
Load Performance Testing 快速确定未决代码更改对服务器性能的影响.
CI services 将 Docker 容器与您的基本映像链接起来.
Code Quality 分析您的源代码质量.
GitLab CI/CD for external repositories 结合使用 GitHub 和 Bitbucket Cloud 中的存储库,获得 GitLab CI / CD 的优势.
Interactive Web Terminals 打开一个交互式 Web 终端以调试正在运行的作业.
JUnit tests 直接在合并请求中识别脚本失败.
Using Docker images 将 GitLab 和 GitLab Runner 与 Docker 结合使用来构建和测试应用程序.
Release
Auto Deploy 将您的应用程序部署到 Kubernetes 集群中的生产环境.
Building Docker images 使用 GitLab CI / CD 维护基于 Docker 的项目.
Canary Deployments 仅将功能部件运送到一部分吊舱中,并让一定比例的用户群访问临时部署的功能部件.
Deploy Boards 检查 Kubernetes 上运行的每个 CI / CD 环境的当前运行状况和状态.
Feature Flags 在功能标记后部署功能.
GitLab Pages 部署静态网站.
GitLab Releases 将发行说明添加到 Git 标签.
Review Apps 配置 GitLab CI / CD 预览代码更改.
Cloud deployment 将您的应用程序部署到主要的云提供商.
Secure
Container Scanning 检查您的 Docker 容器是否存在已知漏洞.
Dependency Scanning 分析您的依赖项是否存在已知漏洞.
License Compliance 在项目依赖项中搜索其许可证.
Security Test reports 检查应用程序漏洞.

Examples

在” CI 实例”页面上查找示例项目代码和教程,以将 GitLab CI / CD 与各种应用程序框架,语言和平台结合使用.

GitLab 还提供了示例项目,这些项目已预先配置为使用 GitLab CI / CD.

Administration

作为 GitLab 管理员,您可以将 GitLab CI / CD 的默认行为更改为:

也可以看看:

References

Why GitLab CI/CD?

学习更多关于:

另请参阅为什么选择 CI / CD? 介绍.

Breaking changes

随着 GitLab CI / CD 的发展,必须进行一些重大更改. 这些是:

13.0

12.0

11.0

  • 没有重大变化.

10.0

  • 没有重大变化.

9.0