搭建CICD

简介

gitlab里面的runner叫Gitlab-Runner Gitlab-Runner是配合Gitlab-CI进行使用的 一般地 Gitlab里面的每一个工程都会定义一个属于这个工程的软件集成脚本 用来自动化地完成一些软件集成工作 当这个工程的仓库代码发生变动时 比如有人push了代码 GitLab就会将这个变动通知Gitlab-CI 这时Gitlab-CI会找出与这个工程相关联的Runner 并通知这些Runner把代码更新到本地并执行预定义好的执行脚本(也就是在Job执行流程那个图中所示的第三步:script) 所以 Gitlab-Runner就是一个用来执行软件集成脚本script的东西

安装gitlab runner

我们需要在工作机上安装gitlab runner runner在工作机上执行编译 打包 运行等一系列操作

安装

注册Runner

我们需要在gitlab我们项目代码仓库服务器上获取token和url 然后注册Runner

复制token和url

在工作机上注册Runner并填入token和url

sudo gitlab-runner register

接下来会提示你输入一系列配置内容

## 输入url
a、Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
 
## 输入token
b、Please enter the gitlab-ci token for this runner
 
## 写个描述
c、Please enter the gitlab-ci description for this runner
 
## 这个tag很重要 好好想个名字并记住 随后在ci配置中需要对应上 
d、Please enter the gitlab-ci tags for this runner (comma separated)
 
## ci没有配置tags时是否执行这个runner?建议采用默认值             
e、Whether to run untagged builds [true/false]
 
## 是否只对当前工程有效?理论上讲只有“Shared runners”才有效 选true             
f、Whether to lock Runner to current project [true/false]
 
## 选择一个执行器 我们接来下的方案是基于shell的 输入shell     
g、Please enter the executor: virtualbox, docker+machine, kubernetes, parallels, docker-ssh, shell, ssh, docker-ssh+machine, docker:

激活runner

gitlab-runner verify

注册完成后 会出现一个runner
runner 左边会有一个小绿点 表示该runner是能正常执行的

Gitlab-runner的配置
GitLab-CI会为这个Runner生成一个唯一的token 以后Runner就通过这个token与GitLab-CI进行通信

那么 问题来了 注册好了的Runner的信息存放在哪儿了呢

原来 Runner的信息是存放在一个配置文件里面的 配置文件的格式一般是 toml 这个配置文件的存放位置有以下几种情况:

在类Unix操作系统下(0.5.0之后版本)
如果是以root用户身份运行gitlab-runner register 那么配置文件默认是/etc/gitlab-runner/config.toml
如果是以非root用户身份运行gitlab-runner register 那么配置文件默认是~/.gitlab-runner/config.toml
在其他操作系统下以及0.5.0之前版本
配置文件默认在当前工作目录下./config.toml

一般情况下 使用默认的配置文件存放Runner的配置信息就可以了 当然 如果你有更细化的分类需求 你也可以在注册的时候通过-c或--config选项指定配置文件的位置 具体查看register命令的使用方法:gitlab-runner register --help

运行 Runner

gitlab-runner run

配置gitlab-ci.yml

gitlab-ci.yml类似于脚本来控制提交后在工作机上执行的任务

指定的任务内容总体构成1个pipeline、1个pipeline包含不同的stage执行阶段、每个stage包含不同的job任务 如下图所示:

配置gitlab-ci.yml

参考gitlab-ci.yml模板

查看结果

我们每次提交代码后 触发cicd 能够在gitlab上查看结果

查看每个任务运行的结果和日志

遇见的问题

提交代码后没有进行cicd或一直在等待

commit必须带tags

默认带tags的commit才会cicd 我们取消这个配置

勾选

![](https://data-saber.oss-cn-guangzhou.aliyuncs.com/cicd/ci3.png
)

没有运行runner

不是超级用户注册需要手动运行

gitlab-runner run

引用

最后修改:2023 年 02 月 07 日
如果觉得我的文章对你有用,请随意赞赏