文章目录

  • 其他博文连接
  • Gitlab配置Gitlab-Runner实现简单的CI/CD
  • 配置说明
  • Gitlab
  • Gitlab Runner
  • 安装Gitlab-Runner
  • 注册Runner到Gitlab
  • 简单测试


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这项中找到。如下:

gitlab ci 选择当前分支 gitlab ci配置_gitlab ci 选择当前分支


其中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 ci 选择当前分支 gitlab ci配置_Gitlab_02

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

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

gitlab ci 选择当前分支 gitlab ci配置_git_03

简单测试

  • 创建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

gitlab ci 选择当前分支 gitlab ci配置_cd_04


最后在官网,操作如下:

  • 进入仓库->settings->CI/CD,找到Runner Settings这一项,点击Expend
  • 找到对应的Runner点击配置按钮
  • gitlab ci 选择当前分支 gitlab ci配置_ci_05

  • 将“Run untagged jobs”勾选上,保存。
  • gitlab ci 选择当前分支 gitlab ci配置_cd_06

  • 重新执行即可执行成功,效果如下:
  • gitlab ci 选择当前分支 gitlab ci配置_git_07


  • gitlab ci 选择当前分支 gitlab ci配置_cd_08

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