文章目录
- 其他博文连接
- 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这项中找到。如下:
其中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静态代码检查等。