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进行升级。

  1. 离线安装
# 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版本一致、活接近。否则会有版本兼容问题

  1. gitlab版本查看方式
    • 在gitlab中的help可以看到, 如下图
      在这里插入图片描述2. 下载gitlab-runner
    • (centos)下载地址使用清华云镜像: https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el7/
    1. 选择版本为12.4.1
  2. 安装
    -命令: sudo yum install gitlab-runner-12.4.1-1.x86_64.rpm

2.2. 注册gitlab-runner

  1. 必备信息获取(ur、runner)

    • 进入仓库目录,在settings中打开CICD, 找到Runners
      gitlab-runner之搭建CI/CD_第1张图片

    • 点击expand,展开runners可以看到url和token, 复制备用
      gitlab-runner之搭建CI/CD_第2张图片

  2. 开始注册

    1. 输入命令: sudo gitlab-runner register

    2. 根据提示输入上面获取的url和token
      在这里插入图片描述

    3. 后面继续输入描述信息, tag, 执行器, 执行器选择shell
      gitlab-runner之搭建CI/CD_第3张图片

    4. 至此, 注册成功, 在url和token获取处, 可以看到注册成功的gitlab-runner
      gitlab-runner之搭建CI/CD_第4张图片

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克隆代码存放位置

  1. 修改gitlab-runner配置文件
cd /etc/gitlab-runner/
vim config.toml

# 在该文件中添加enabled = true, 如下图

gitlab-runner之搭建CI/CD_第5张图片

3. .gitlab-ci.yml存放位置

在项目主目录下

4. 完成

1. 效果演示

提交代码后, 效果如下, skipped是因为加了手动执行, 提交代码回会显示跳过
gitlab-runner之搭建CI/CD_第6张图片

2. 手动触发

  1. 新建工作计划
    gitlab-runner之搭建CI/CD_第7张图片
  2. 执行
    gitlab-runner之搭建CI/CD_第8张图片

你可能感兴趣的:(gitlab,ci/cd,git,gitlab-runner)