Gitlab配置Gitlab-Runner实现简单的CI/CD

其他博文连接

Gitlab配置Gitlab-Runner实现简单的CI/CD

配置说明

Gitlab

  • 系统:Ubuntu 16.04 Server
  • 内存:4G
  • IP:192.168.23.100
  • Dokcer Version : 18.09.0

Gitlab Runner

  • 系统:Ubuntu 16.04 Server
  • 内存:4G
  • IP:192.168.23.102
  • Dokcer Version : 18.09.0

安装Gitlab-Runner

  • 在Gitlab Runner的机器上执行命令
#在ubuntu server16.04版本下使用命令即可安装
$ sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

#接着授予可执行权限
$ sudo chmod +x /usr/local/bin/gitlab-runner

#创建一个gitlab-ci用户
$ sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

#安装,并作为服务启动
$ sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

注册Runner到Gitlab

这部分内容在另一篇博文《GitLab持续集成持续部署(CI&CD)》有提到过,不过之前是使用的shell执行器,这里改用docker执行器。使用docker执行器能够对环境进行很好的隔离,其中的具体区别,可参考官方文档

  • 执行命令
$ sudo gitlab-runner register

会要求输入gitlab的url和Token.
查找过程如下:
进入仓库->settings->CI/CD,找到Runner Settings这一项,点击Expend,即可在Setup a specific Runner manually这项中找到。如下:
在这里插入图片描述
其中url和token在图片中可以找到。

  • 进入注册流程
    命令输入完,点击回车后,会进入注册步骤,共分为以下几步:
    • 输入Gitlab实例的URL
      • 可在上图中查看
    • 输入要注册的仓库的Token
      • 可在上图中查看
    • 输入Runner的描述
      • 这里可以随便输入
    • 输入Runner的标签
      • 这里也可以随便输入
    • 选择Runner执行器
      • 执行器这里以Docker为示例
    • 选择默认镜像(Docker执行器)
      • 默认执行器是当在.gitlab-ci.yml中没有指定镜像(image)是默认的。因为我这里都是对Java代码进行流水线测试,所以这里就选取本人仓库中的一个默认镜像virtuex/base_java_env:gradle-4.10.2-openjdk-7-openjdk-8-docker-18。Dockerhub的地址为:https://cloud.docker.com/u/virtuex/repository/docker/virtuex/base_java_env

具体流程如下图所示:
在这里插入图片描述

  • 启动Gitlab-Runner
    执行下面命令:
$ gitlab-runner run

进入仓库->settings->CI/CD,找到Runner Settings这一项,点击Expend,即可看到Gitlab-Runenr的运行状态
在这里插入图片描述

简单测试

  • 创建Gradle项目
    因为我们是使用gradle作为构建工具,所以请先创建一个gradle的项目,如果不会请自行面壁。
  • 在项目的根目录下创建.gitlab-ci.yml文件,内容暂定如下:
image: virtuex/base_java_env:gradle-4.10.2-openjdk-7-openjdk-8-docker-18

stages:
  - build
  - test

before_script:
  - echo "Restoring Packages..."

build_job:
  stage: build
  script:
  - echo "Release build..."
  except:
  - tags

test_job:
  stage: test
  script:
  - echo "Tests run..."
  - cd cds.ci.test
  - gradle test
  • push代码到仓库
    使用以上脚本提交的时候,CI流水线一直处于pending状态,并且提示:
This job is stuck because the project doesn't have any runners online assigned to it.
Go to Runners page

在这里插入图片描述
最后在官网,操作如下:

  • 进入仓库->settings->CI/CD,找到Runner Settings这一项,点击Expend

  • 找到对应的Runner点击配置按钮
    在这里插入图片描述

  • 将“Run untagged jobs”勾选上,保存。
    在这里插入图片描述

  • 重新执行即可执行成功,效果如下:
    在这里插入图片描述
    在这里插入图片描述

本章讲解下基本的配置,接下来结合SpringBoot应用进行自动化测试、自动化部署、集成Sonarqube静态代码检查等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章