创建并运行您的第一个极狐GitLab CI/CD 流水线
创建并运行您的第一个极狐GitLab CI/CD 流水线
本教程将指导您在极狐GitLab中配置和运行第一个CI/CD流水线。通过本文,您将学习如何创建流水线、配置作业以及查看流水线状态。适合对CI/CD有一定了解但尚未在GitLab中实践的用户。
先决条件
开始之前,请确保满足以下条件:
- 您有一个需要使用CI/CD的极狐GitLab项目
- 您拥有该项目的所有者或维护者角色
如果您还没有项目,可以创建一个公共项目或使用SaaS服务(https://jihulab.com)。
步骤
要创建并运行您的第一个流水线:
确保您有可用的runner来运行您的作业。如果您使用JihuLab.com,可以跳过此步骤,因为JihuLab.com为您提供了实例runner。
在仓库的根目录下创建
.gitlab-ci.yml
文件。此文件将定义CI/CD作业。当您提交文件到仓库时,runner就会运行您的作业,作业结果会在流水线中展示。
确保您有可用的runner
在极狐GitLab中,runners是运行CI/CD作业的代理。要查看可用的runner:
- 在左侧边栏中,选择搜索或前往,然后找到您的项目。
- 选择设置 > CI/CD。
- 展开Runners。
只要您看到至少一个runner,它旁边有一个绿色圆圈,就表示您有可用的runner来处理您的作业。
创建.gitlab-ci.yml
文件
.gitlab-ci.yml
文件是一个YAML文件,您可以在其中配置GitLab CI/CD的特定指令。在此文件中,您定义:
- runner应执行的作业的结构和顺序
- runner在遇到特定条件时应做出的决定
创建一个.gitlab-ci.yml
文件:
- 在左侧边栏中,选择项目信息 > 详细信息。
- 在文件列表上方,选择要提交的分支,点击加号图标,然后选择新建文件。
- 对于文件名称,输入
.gitlab-ci.yml
,并在较大的窗口中粘贴以下示例代码:
build-job:
stage: build
script:
- echo "Hello, $GITLAB_USER_LOGIN!"
test-job1:
stage: test
script:
- echo "This job tests something"
test-job2:
stage: test
script:
- echo "This job tests something, but takes more time than test-job1."
- echo "After the echo commands complete, it runs the sleep command for 20 seconds"
- echo "which simulates a test that runs 20 seconds longer than test-job1"
- sleep 20
deploy-prod:
stage: deploy
script:
- echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
environment: production
此示例展示了四个作业:build-job
、test-job1
、test-job2
和deploy-prod
。当查看作业时,echo
命令中列出的注释会展示在UI中。$GITLAB_USER_LOGIN
和$CI_COMMIT_BRANCH
的预定义变量的值会在作业运行时填充。
- 点击提交变更。提交后,流水线开始。
查看流水线和作业的状态
现在可以查看您的流水线和作业了:
- 前往构建 > 流水线。就会展现一个具有三个stage的流水线:
- 通过选择流水线ID来可视化查看您的流水线:
- 通过选择作业名称来查看作业详情。比如,
deploy-prod
您已经成功创建了您的第一个流水线。恭喜您!
现在您可以开始自定义您的.gitlab-ci.yml
文件,并定义更高级的作业。
.gitlab-ci.yml
tips
下面是一些使用.gitlab-ci.yml
文件的提示。对于完整的.gitlab-ci.yml
语法,请参阅完整的CI/CD YAML语法参考。
- 使用流水线编辑器来编辑您的
.gitlab-ci.yml
文件。 - 每个作业都包含一个脚本部分,并属于一个阶段:
stage
描述了作业的顺序执行。如果可用的runner,单个阶段中的作业将并行运行。- 使用
needs
关键字来按顺序运行作业,以增加流水线的速度和效率。 - 您可以设置额外的配置来定制您的作业和阶段的执行方式:
- 使用
rules
关键字来指定何时运行或跳过作业。only
和except
旧关键字仍然支持,但不能与rules
在同一个作业中使用。 - 使用
cache
和artifacts
关键字在流水线中存储依赖项和作业输出,即使使用每个作业的临时runner。 - 使用
default
关键字来指定应用于所有作业的额外配置。此关键字通常用于定义before_script
和after_script
部分,这些部分应该在每个作业上运行。