用 GitLab CI 进行持续集成
GitLab CI 使用笔记
简介
GitLab 自带了 GitLab Continuous Integration (GItLab CI),并且默认已经打开,要使用此项服务需要在项目的根目录下配置一个 .gitlab-ci.yml
配置文件描述 pipeline 工作流程,一般流程分为 test
build
deploy
, 而 GItLab CI 使用 GitLab Runner
来执行 pipeline
中的每一步, 而这个 GitLab Runner
是需要安装在自己的服务器上的.
核心流程图如下
1 | +--------------+ +------------+ |
即 通过 Commit or Merge 触发 GitLab CI, 之后 GitLab CI 会通知已经注册好的 GItLab Runner 来执行 .gitlab-ci.yml 中配置的步骤
核心概念
Pipeline
Pipeline 是一组分阶段执行的作业, 相当于一次构建任务, 例如一套完整的 Test Build Deploy, 代码库中的任何 Commit/Merge 都会触发 Pipeline 从而执行任务
Stage
Stage 就是 Pipeline 中的每个步骤例如 Test Build 这种单个的步骤
1 | +------------------------------------------------------------+ |
在实际中一个 Pipeline 内可以包含若干个 Stage 上图只是示例
Jobs
Jobs 就是单个 Stage 所执行的工作, 一个 Stage 可以有多个 Jobs, 这些 Jobs 是并行的,并且都执行成功之后当前的 Stage 才会成功,同理如果有一个 Jobs 执行失败了当前 Stage 就会失败,同理 Pipeline 就会失败
1 | +----+Stage +-----> Next Stage |
上面就是一些主要的概念,下面就是具体操作
安装
安装 GitLab Runner
安装 GitLab Runner 教程官网上有, 使用 Docker 进行安装. GitLab Runner 和 GitLab 版本不做强行要求,不过官网上说最好一样.
1 | version: "3" |
执行 docker-compose up -d
会生成一个 gitlab-runner 文件夹,文件夹下有一一个 config 文件夹, 文件夹下会有一个空的 config.toml 文件
注册 GitLab Runner
注册 GitLab Runner ,输入 以下命令进入容器内部进行注册, 打开自己的 GitLab 项目,在侧边栏最后一项的设置里面找到 CI/CD, 左边会显示注册用的 url 和 Token
1 | docker exec -it 容器名称 gitlab-runner register |
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
输入网页上的 URL
回车
Please enter the gitlab-ci token for this runner:
输入网页上显示的 Token
回车
Please enter the gitlab-ci description for this runner
输入这个 runner 的描述
Please enter the gitlab-ci tags for this runner (comma separated):
输入这个 runner 的标签
Please enter the executor: parallels, shell, virtualbox, docker, docker-ssh, ssh, docker+machine, docker-ssh+machine, kubernetes, custom:
使用了 docker 就输入 docker
Please enter the default Docker image (e.g. ruby:2.6):
输入默认使用的 docker 镜像 文档上写了输入 alpine:latest
这个时候在刷新网页就可以看到注册之后的 Gitlab Runner 已经连接的信息了
gitlab-ci.yml
具体配置可以参照官网下面给出一个非常简单的
1 | image: node:lts-alpine # 使用镜像 |