GitLab CI流水线配置文件.gitlab-ci.yml详解(三)

本文深入解析GitLab CI/CD的流水线配置文件.gitlab-ci.yml,包括核心概念、配置参数及其实例。通过实验环境介绍了GitLab CI的使用,阐述了流水线的构建、测试和部署流程,并详细讲解了script、image、stages等关键配置项。此外,还提供了参数详解的链接,帮助读者掌握如何定义和优化作业,实现持续集成和持续部署。

GitLab CI流水线配置文件.gitlab-ci.yml详解

… contents:: 目录

本文讲解在 :ref:GitLab的汉化与CI持续集成gitlab-runner的配置 <configure_gitlab_i18n_and_create_gitlab_ci_with_gitlab_runner> 的基础上,对GitLab CI流水线配置文件 .gitlab-ci.yml 进行详细的介绍。

1. 实验环境

  • server服务端: 操作系统为CentOS 7.6,IP:192.168.56.14, git:2.16.5。

查看server服务端信息::

[root@server ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 
[root@server ~]# ip a show|grep 192
inet 192.168.56.14/24 brd 192.168.xxx.xxx scope global noprefixroute enp0s3
[root@server ~]# git --version
git version 2.16.5

GitLab用户信息::

账号            密码
root            1234567890
sunshine        1234567890

GitLab WEB网站地址: http://192.168.xxx.xxx

流水线执行的具体过程都是由 .gitlab-ci.yml 配置文件定义的,本文详细讲解 .gitlab-ci.yml 配置文件的使用。

2. GitLab CI介绍

  • GitLab提交持续集成服务,当你在项目根目录中添加 .gitlab-ci.yml 文件,并配置项目的运行器( GitLab Runner ),那么后续的每次提交都会触发CI流水线( pipeline )的执行。

  • .gitlab-ci.yml 文件告诉运行器需要做哪些事情,默认情况下,流水线有 buildtestdeploy 三个阶段,即 构建测试部署 ,未被使用的阶段将会被自动忽略。

  • 如果一切运行正常(没有非零返回值),您将获得与提交相关联的漂亮绿色复选标记。这样可以在查看代码之前轻松查看提交是否导致任何测试失败。

  • 大多数项目使用GitLab的CI服务来运行测试套件,以便开发人员在破坏某些内容时可以立即获得反馈。使用持续交付和持续部署将测试代码自动部署到模拟环境和生产环境的趋势越来越明显。

  • 由于将 .gitlab-ci.yml 文件存放在仓库中进行版本控制,使用单一的配置文件来控制流水线,具有读访问权限的每个人都可以查看内容,从而使其更有吸引力地改进和查看构建脚本。旧的版本也能构建成功,forks项目也容易使用CI,分支可以有不同的流水线和作业。

  • .gitlab-ci.yml 定义每个项目的流水线的结构和顺序,由以下两个因素决定:

  • GiTlab Runner运行器使用的执行器( executor ),执行器常用的 ShellDockerKubernets , 我们当前仅使用 Shell 执行器,后续再使用其他执行器。

  • 遇到进程成功或失败时等条件时做出的决定。

  • 可以在 查看到流水线的简单示例

  • 可以在 GitLab CI/CD Examples <https://docs.gitlab.com/ce/ci/examples/README.html>_ 查看更多的流水线示例。

  • 在流水线脚本中可以使用预定义的全局变量,详细可查看

  • [企业级的 .gitlab-ci.yml 示例可查看]

  • Job作业是 .gitlab-ci.yml 文件的基本元素,每个作业至少有 script 子句,在流水线中可以定义任意多个作业。

  • 每个作业必须具有唯一的名称,但有一些保留的关键字不能用作作业名称,保留关键字( reserved keywords )有 imageservicesstagestypesbefore_scriptafter_scriptvariablescache

3. .gitlab-ci.yml 配置参数


关键字描述
script必须参数,运行器需要执行的脚本
image使用Docker image镜像
services使用Docker services镜像
before_script作业执行前需要执行的命令
after_script作业执行后需要执行的命令
stages定义流水线所有的阶段
stage定义作业所处流水线的阶段(默认test阶段)
only限制作业在什么时候创建
except限制作业在什么时候不创建
tags作用使用的Runner运行器的标签列表
allow_failure允许作业失败,失败的作业不影响提交的状态
when什么时候运行作业
environment作用部署的环境名称
cache指定需要在job之间缓存的文件或目录
artifacts归档文件列表,指定成功后应附加到job的文件和目录的列表
dependencies当前作业依赖的其他作业,你可以使用依赖作业的归档文件
coverage作业的代码覆盖率
retry作业失败时,可以自动执行多少次
parallel指定并行运行的作业实例
trigger定义下游流水线的触发器
include作业加载其他YAML文件
extends控制实体从哪里继承
pages上传GitLab Pages的结果
retry作业失败时,可以自动执行多少次
variables定义环境变量

4 参数详解

4.1 CI参数详解(一)
4.2 CI参数详解(二)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大江东去浪淘尽千古风流人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值