教程

要使用GitLab CI / CD,您需要:

  • 托管在Git存储库中的应用程序代码。
  • .gitlab-ci.yml在存储库根目录中称为的文件,其中包含CI / CD配置。

.gitlab-ci.yml文件中,您可以定义:

  • 您要运行的脚本。
  • 您要包括的其他配置文件和模板。
  • 依赖关系和缓存。
  • 您要顺序运行的命令和您要并行运行的命令。
  • 将应用程序部署到的位置。
  • 您是要自动运行脚本还是手动触发任何脚本。

脚本被分组为作业,并且作业作为更大的管道的一部分运行 。您可以将多个独立的作业分为按定义顺序运行的阶段。CI / CD配置至少需要一项未隐藏的作业。

您应该按照适合您的应用程序的顺序组织作业,并与您要执行的测试相一致。为了可视化该过程,假设添加到作业中的脚本与您在计算机上运行的CLI命令相同。

.gitlab-ci.yml文件添加到存储库时,GitLab会检测到该文件,然后一个名为GitLab Runner的应用程序将 运行作业中定义的脚本。

一个.gitlab-ci.yml文件可能包含:


<span style="color:#1f1f1f"><span style="color:#eff1f5"><code><span style="color:#8fa1b3">stages</span>:
  - <span style="color:#a3be8c">build</span>
  - <span style="color:#a3be8c">test</span>

<span style="color:#8fa1b3">build-code-job</span>:
  <span style="color:#8fa1b3">stage</span>: <span style="color:#a3be8c">build</span>
  <span style="color:#8fa1b3">script</span>:
    - <span style="color:#a3be8c">echo "Check the ruby version, then build some Ruby project files:"</span>
    - <span style="color:#a3be8c">ruby -v</span>
    - <span style="color:#a3be8c">rake</span>

<span style="color:#8fa1b3">test-code-job1</span>:
  <span style="color:#8fa1b3">stage</span>: <span style="color:#a3be8c">test</span>
  <span style="color:#8fa1b3">script</span>:
    - <span style="color:#a3be8c">echo "If the files are built successfully, test some files with one command:"</span>
    - <span style="color:#a3be8c">rake test1</span>

<span style="color:#8fa1b3">test-code-job2</span>:
  <span style="color:#8fa1b3">stage</span>: <span style="color:#a3be8c">test</span>
  <span style="color:#8fa1b3">script</span>:
    - <span style="color:#a3be8c">echo "If the files are built successfully, test other files with a different command:"</span>
    - <span style="color:#a3be8c">rake test2</span>
</code></span></span>


在此示例中,阶段中的build-code-job作业build首先运行。它输出作业正在使用的Ruby版本,然后运行rake以构建项目文件。如果此作业成功完成,则阶段中的两个test-code-job作业将test并行启动并在文件上运行测试。

该示例中的完整管道由三个作业组成,分为两个阶段, buildtest。每次将更改推送到项目中的任何分支时,管道都会运行。

GitLab CI / CD不仅执行作业,而且还向您显示执行期间发生的情况,就像您在终端中看到的那样:

gitlab 默认配置 .gitlab-ci.yml配置_gitlab 默认配置

您为您的应用程序创建策略,GitLab根据您定义的内容运行管道。您的管道状态也会由GitLab显示:

gitlab 默认配置 .gitlab-ci.yml配置_配置文件_02

如果有任何问题,可以 回滚更改:

gitlab 默认配置 .gitlab-ci.yml配置_ci_03

查看.gitlab-ci.yml文件的完整语法

相关知识

GitLab CI/CD是GitLab提供的集成持续集成和持续交付(CI/CD)的功能,它允许开发人员在GitLab上自动构建、测试和部署应用程序。本文将详细介绍GitLab CI/CD的基本概念、特性、工作原理以及常见的使用技巧。

一、GitLab CI/CD的基本概念

  1. Runner(运行器):Runner是GitLab CI/CD的执行代理,负责实际执行构建、测试和部署任务。Runner可以是GitLab提供的共享Runner,也可以是用户自己配置的私有Runner。
  2. Job(任务):Job是CI/CD的最小执行单元,表示一个独立的构建任务。每个Job定义了一系列的步骤和配置,包括构建环境、命令、脚本等。
  3. Pipeline(流水线):Pipeline由多个Job组成,代表整个CI/CD流程。Pipeline定义了Job之间的依赖关系和执行顺序,可以实现自动化的构建、测试和部署流程。
  4. Stage(阶段):Stage是Pipeline中的逻辑分组,用于将相关的Job组织在一起。例如,可以将构建、测试和部署分为不同的阶段,并定义相应的Job。

二、GitLab CI/CD的特性

  1. 集成分支:GitLab CI/CD与GitLab代码仓库紧密集成,可以根据不同的分支和标签触发相应的CI/CD流程。
  2. 并行执行:GitLab CI/CD支持并行执行多个Job,提高构建和测试的效率。
  3. 容器化支持:GitLab CI/CD支持使用容器技术(如Docker)来运行构建环境,实现一致性和可重复性。
  4. 提供自动化工具:GitLab CI/CD提供了丰富的工具和命令,用于构建、测试和部署应用程序,如Maven、Gradle、JUnit等。
  5. 高度可定制:GitLab CI/CD的配置文件采用YAML语法,用户可以编写自定义的CI/CD流程,满足特定的需求。

三、GitLab CI/CD的工作原理

  1. 定义CI/CD配置:在项目的根目录下创建名为.gitlab-ci.yml的配置文件,定义Pipeline的结构、阶段、Job和脚本等内容。
  2. 提交代码:将代码提交到GitLab仓库,触发CI/CD流程。
  3. 创建Pipeline:GitLab接收到代码提交后,根据配置文件创建Pipeline,并根据定义的规则和顺序执行Job。
  4. 运行Job:每个Job会在一个独立的Runner上执行,Runner根据配置文件中定义的命令和脚本进行构建、测试和部署等操作。
  5. 生成报告和结果:每个Job执行完成后,GitLab会生成相应的报告和结果,包括构建日志、测试报告、代码覆盖率等。
  6. 自动化部署:根据配置,可以将特定的Job设置为自动部署到预定义的环境中,如测试环境、生产环境等。

四、GitLab CI/CD的常见使用技巧

  1. 编写配置文件:了解.gitlab-ci.yml配置文件的语法和结构,编写清晰、可维护的CI/CD流程。
  2. 使用Runner标签:通过给Runner配置标签,可以将不同类型的任务分配到特定的Runner上执行。
  3. 并行执行:合理使用并行执行的功能,提高构建和测试的速度。注意资源使用情况,避免过多的并行任务导致性能问题。
  4. 安全设置:根据需要设置访问权限和安全策略,确保CI/CD过程的安全性和机密性。
  5. 使用Artifacts和Cache:利用Artifacts和Cache功能,可以在不同的Job之间共享和传递文件、依赖项等,提高构建效率。

总结:

GitLab CI/CD是一个强大的集成持续集成和持续交付工具,它与GitLab紧密集成,提供了一套完整的自动化构建、测试和部署流程。通过学习和掌握GitLab CI/CD的基本概念、特性和使用技巧,可以实现高效的软件交付和持续集成。然而,深入理解和熟练应用GitLab CI/CD还需要进一步的学习和实践,请根据实际需求和情况不断探索和扩展您对GitLab CI/CD的认识和应用能力。