gitlab-runner搭建CI/CD
1. 背景
每次发布代码,需要连接服务器更新代码,进行部署,比较繁琐,浪费时间。方案有jenkins或gitlab-runner。由于代码仓库是gitlab并且只需要自动部署,不需要其他额外功能,这里选择使用gitlab-runner。
2. 升级git(重要!!!)
centos默认yum安装的git版本是1.8.3.1, 现在git最新版本已经是2.39.0。使用老版本gitlab-runner后续重复构建会出现问题,安装gitlab-runner前,要将git进行升级。
- 离线安装
# linux版本git下载地址
https://www.kernel.org/pub/software/scm/git/git-2.39.0.tar.gz
# 将文件下载到linux服务器中, 可以是其他目录, 随意
cd /user/local/
wget https://www.kernel.org/pub/software/scm/git/git-2.39.0.tar.gz
# 解压文件
tar -zxvf git-2.39.0.tar.gz
# 安装编译环境
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
# 安装编译环境时, 会自动安装1.8.3.1版本git, 这里需要卸载一下
yum remove git
# 编译
cd git-2.39.0
make prefix=/opt/git all
# 安装
make prefix=/opt/git install
# 安装成功后, 可以看到/opt/git有以下文件
cd /opt/git
ls
# bin libexec share
vim /etc/profile
# 文件最下方添加
export GIT_HOME=/opt/git
export PATH=$GIT_HOME/bin:$PATH
# 刷新配置文件
source /etc/profile
# 查看版本
git --version
# git version 2.39.0
2. 安装gitlab-runner
2.1 版本选择
gitlab-runner版本最好和gitlab版本一致、活接近。否则会有版本兼容问题
- gitlab版本查看方式
- 在gitlab中的help可以看到, 如下图
2. 下载gitlab-runner - (centos)下载地址使用清华云镜像: https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/
- 选择版本为12.4.1
- 在gitlab中的help可以看到, 如下图
- 安装
-命令: sudo yum install gitlab-runner-12.4.1-1.x86_64.rpm
2.2. 注册gitlab-runner
-
必备信息获取(ur、runner)
-
进入仓库目录,在settings中打开CICD, 找到Runners
-
点击expand,展开runners可以看到url和token, 复制备用
-
-
开始注册
-
输入命令: sudo gitlab-runner register
-
根据提示输入上面获取的url和token
-
后面继续输入描述信息, tag, 执行器, 执行器选择shell
-
至此, 注册成功, 在url和token获取处, 可以看到注册成功的gitlab-runner
-
3. gitlab-ci.yml配置文件
在项目根目录下创建.gitlab-ci.yml文件, gitpush后,gitlab会自动识别该配置文件进行执行脚本,举例如下
1. 配置文件示例
#构建阶段
stages:
- cloneCode
- run
# 执行gitlab-runner克隆代码存放位置
variables:
GIT_CLONE_PATH: /home/gitlab-runner/builds/backend
# 第一个stage
cloneCode:
when: manual # 手动触发, 不加该节点,提交代码会自动触发任务
stage: cloneCode
tags:
- 'soybean'
script: # 该下面可写shell脚本
- echo "代码更新成功"
# 第二个stage
run:
when: manual # 手动触发
stage: run
tags:
- 'soybean'
script:
- ls
- nohup python3 /home/gitlab-runner/builds/backend/backend/run.py runserver >> soybean.log 2>&1 &
- echo "启动成功"
2. 指定gitlab-runner克隆代码存放位置
- 修改gitlab-runner配置文件
cd /etc/gitlab-runner/
vim config.toml
# 在该文件中添加enabled = true, 如下图
3. .gitlab-ci.yml存放位置
在项目主目录下
4. 完成
1. 效果演示
提交代码后, 效果如下, skipped是因为加了手动执行, 提交代码回会显示跳过
2. 手动触发
- 新建工作计划
- 执行