Gitlab CI/CD 打包学习笔记

一、名词解释

CI:持续集成,通过创建脚本自动构建和测试指定分支代码

CD:持续交付、持续部署,通过手动或自动实现程序安装部署

本文注重于CI相关学习

二、整体结构

Pipeline → Stages → jobs

可以简单类比成Projcet → Module → Class的关系

(1) Pipeline 流水线,表示一个完整的构建过程(一个完整的项目)

(2) Stages 阶段,可以理解为模块划分,例如登录模块前端、后端是一个stage,微服务是另一个stage,一个pipeline里可以定义多个stage(根据性质、属性等划分为不同的Module)

      Stages 定义什么时候执行 Jobs,比如:在编译代码的阶段之后进入运行测试的阶段。

  • 所有stages会按照顺序执行,当一个stage完成后,下一个stage才会开始
  • 当所有stage成功完成后,本次Pipeline才算成功
  • 构建过程中有任何一个stage失败,后续的stage都不会执行

(3) Jobs 任务,以登录模块举例,Jobs会有前端、后端两个job,表示相同stage下要执行的任务,一个stage里可以定义多个job(不同类完成不同的职能需求)

      Jobs 定义了该做什么,比如:编译和测试代码。

  • 相同stage的jobs会并行执行
  • 项目stage的jobs都执行成功,该stage才会成功
  • 任何一个job失败,都会导致stage失败

其中,job是构成CI系统的最小单位,job中包含多个元素,组成了单个构建过程,以下是job包含的必要元素

  • script,CI/CD过程需要执行的shell脚本
  • stage,声明该任务属于哪个阶段
  • tags,数组属性,声明该job属于哪个runner执行

上述元素即可构成最简单的job,如下图所示,其中startJob、endJob为自定义命名,和保留字区分即可

 

三、安装Runner

在执行集成之前,需要安装好Runner作为基础运行环境,runner相当于一个装在另一个系统上的软件包,提供脚本功能执行的能力。

相当于在git服务器上配置好任务,把任务过程外包给了执行服务器(安装了runner的服务器),git服务器只负责回显执行结果。

类似编译器和基础环境、功能设计和功能实现的关系。

安装过程参考 Gitlab Runner的搭建与使用入门

下文以Linux举例

  • 下载Linux Runner安装包,链接: https://pan.baidu.com/s/1E2iztJH8KPqAERP93dYInA 提取码: 5c3d
  • 将安装包放置到任意目录下,并设置文件权限,如下图所示

  • 执行 sudo gitlab-runner register --url 参数1(例如http://gitlab.com/) --registration-token 参数2(例如_4LfzxNXMVogfuYQ7qVY)

            其中,参数1替换成需要绑定的git地址,参数2替换如下图所示

  •  参数拼接完成后,按照下图描述执行

  •  若出现提示ERROR: Registering runner... failed                 runner=_4LfzxNX status=couldn't execute POST against http://gitlab.com/api/v4/runners: Post "http://gitlab.com/api/v4/runners": dial tcp: lookup gitlab.com on 1.1.1.1: read udp 2.2.2.2:50263->1.1.1.1: i/o timeout
  • 请参考详解Gitlab Runner注册与过程中遇到的问题,或尝试在/etc/hosts下增加gitlab的域名配置信息,如下图所示;配置完成后再尝试重新注册

  • 注册成功后,在Runner配置中可找到对应的注册信息:

 

 

文章参考:

  • https://blog.csdn.net/wangjiang_qianmo/article/details/122867335 Gitlab CI/CD简单介绍
  • http://www.manongjc.com/detail/63-ynmgipfjzuukjhi.html Gitlab-CICD 最明了的入门教程
  • http://www.manongjc.com/detail/28-tklvxekszkhkqln.html GitLab CI/CD Pipeline 与 jobs的概念
  • https://www.jianshu.com/p/3ebbed238c74 GitLab Runner介绍
  • https://www.jianshu.com/p/fd00a9cc87ef Gitlab Runner的搭建与使用入门
  • https://blog.csdn.net/shouchenchuan5253/article/details/117638982 详解Gitlab Runner注册与过程中遇到的问题
posted @ 2023-04-14 10:48  咖喱队长  阅读(482)  评论(0)    收藏  举报