gitlab + gitlab-runner 实现项目的自动化部署测试环境与打包 - 相对完整版
前提:
环境:一台Ubuntu18.04机器,4核 8g以上,低了卡
一、修改Ubuntu18.04的安装源
由于网络不行,不改安装源下载东西下载不下来
1、备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2、修改默认源为阿里,添加如下代码
sudo vim /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
3、更新
sudo apt-get update
---------------修改默认源参考链接
二、安装 docker
第一种方式:离线安装docker
第二种方式:官方在线安装
安装完后配置加速器不然pull镜像有点慢,这个网上很多,阿里、网易、daocloud 都可以
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
三、docker 安装 gitlab
1、创建一个gitlab的目录
mkdir ~/gitlab
2、进入目录,运行命令安装gitlab
cd ~/gitlab
sudo docker run -d --name gitlab --restart=always --hostname gitlab.xxx.com -e GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.xxx.com/'; gitlab_rails['lfs_enabled'] = true;" \
-p 443:443 -p 80:80 -p 22:22 -v $PWD/config:/etc/gitlab -v $PWD/logs:/var/log/gitlab -v $PWD/data:/var/opt/gitlab gitlab/gitlab-ce
访问网址,应该是成功的
3、修改gitlab的80端口
1)需要修改 etc/gitlab.rb 中 external_url="http://gitlab.xxx.com:801/"
2)添加 nginx['listen_port'] = 801
3)-p 801:801
四、安装gitlab-runner
1、命令安装
sudo curl -L --output /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
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
2、注册gitlab-runner
sudo gitlab-runner register,根据提示依次输入
1)输入gitlab的网址 http://gitlab.xxx.com/
2)输入gitlab的token 管理员登录到gitlab在 admin area 的 runners 里面
3)输入描述 自动化部署测试环境与打包app
4)输入tag autotest
5)输入executor shell
完成...,需要注意的是 gitlab-runner 这个用户需要 root 权限,不然权限不够
3、给 gitlab-runner 用户提升权限
sudo vim /etc/passwd
把gitlab-runner那一行的数字改成0 就可以了,注意观察 root 那一行,对比修改
五、创建项目编写自动化部署脚本
编写在项目中创建 .gitlab-ci.yml,gitlab-ci编写参考网址
参考脚本,脚本中用到了 npm 与 dotnet-cli,自行下载安装,网不好的 npm 一定要用国内的源,不然要卡死
npm config set registry http://registry.npm.taobao.org
需要注意的是,gitlab-runner 中对特殊符号支持不好,最好编写脚本来做,比如 if 语句等。
六:流程大体思路
1、开发人员开发完成后,提交一个合并请求到 dev 分支,受理人为测试人员,测试人员点击合并后,触发自动化部署测试环境脚本,部署程序
2、测试人员测试完成后,提issue,如果有问题,修改bug,没有大的问题,合并到master,并创建一个 tag ,触发自动化打包的脚本
------------------写的不好,不喜勿喷。