前言:因公司项目需求,需要自己搭建一个Gitlab服务器来管理代理和版本控制,搭建Gitlab-Runner服务器来执行编译打包项目,从而发布到阿里云服务器上(使用Docker)。然后针对于我来说,虽然一直在用Git,说实话,如果去搭建还是比较费脑子的。毕竟之前没有认真的去学习过Git服务器的搭建技术,就只是了解如果使用它。那么,今天我们就一起来学习其中一个搭建Gitlab-runner服务吧!如果要学习Gitlab的搭建请转到我的上一篇。如何在Centos上轻松快速的搭建一个Gitlab服务器?速来了解~
1.新建 .repo文件(可在本地手动创建后,通过使用Xftp工具上传到对应路径)
在此路径新建: /etc/yum.repos.d/gitlab-ci-multi-runner.repo 内容如下:
[gitlab-ci-multi-runner]
name=gitlab-ci-multi-runner
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ci-multi-runner/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
2.运行.repo文件
sudo yum makecache
sudo yum install gitlab-ci-multi-runner
3.加入docker组,并给出最高权限
sudo usermod -aG docker gitlab-runner
sudo chmod -R 777 /home/gitlab-runner
4.给gitlab-runner添加root权限(执行免密码)
执行:vi /etc/sudoers加入:gitlab-runner ALL=(ALL) NOPASSWD: ALL
5.注册gitlab-runner
sudo gitlab-runner register
1.输入gitlab的服务URL,获取方式参考上图
2.输入gitlab-ci的Toekn,获取方式参考上图
3.关于集成服务中对于这个runner的描述
4.给这个gitlab-runner输入一个标记,这个tag非常重要,在后续的使用过程中需要使用这个tag来指定gitlab-runner
5.是否运行在没有tag的build上面。在配置gitlab-ci的时候,会有很多job,每个job可以通过tags属性来选择runner。这里为true表示如果job没有配置tags,也执行
6.是否锁定runner到当前项目
7.选择执行器,gitlab-runner实现了很多执行器,可用在不同场景中运行构建,详情可见GitLab Runner Executors,这里选用shell模式
注册成功后如上图,会存在一跳Gitlab-runner的记录。
6.Runner的使用
使用.gitlab-ci.yml配置你的项目(各有不同,先看看我的吧)
cache:key: maven-repository-cachepaths:- .m2variables:MAVEN_OPTS: "-Dmaven.repo.local=.m2"stages:- build- package- deployvariables:MAVEN_REVERSION_CMD: mvn versions:set -DnewVersion=$CI_COMMIT_REF_NAME -DprocessAllModules=true -DallowSnapshots=truetask_package:stage: buildscript:- mvn versions:set -DnewVersion=$CI_COMMIT_REF_NAME -DprocessAllModules=true -DallowSnapshots=true- mvn clean package -DskipTestsartifacts:paths:- $CI_PROJECT_DIR/**/target/loms-business-*.jar- $CI_PROJECT_DIR/**/target/loms-platform-*.jartags:- my-runneronly:- tagstags:- my-runneronly:- tagstask_deploy:stage: deployscript:- docker exec -it --volume-from ${
HOSTNAME} -v /:/workspace node ls /workspace# - npm run install --registry=http://registry.npm.taobao.orgtags:- cslpwhen: manualonly:- tags
如图就是成功运行之后的!!!!