使用Gitlab做VCS可以很轻松的搭配Gitlab-CI做持续集成。
安装
Gitlab8以上已集成CI,安装gitlab-ci-server就能使用,以CentOS为例
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
sudo yum install gitlab-ci-multi-runner
注册
gitlab-ci-multi-runner register
根据提示输入你的Gitlab地址,输入Token选择Runner方式,Token获取可以点CI/CD Pipelines
进入配置页面获取
第一行就是
启动
启动特别简单
gitlab-ci-multi-runner start
可以把它加入到开机启动里
echo "sudo gitlab-ci-multi-runner start" >> /etc/rc.local
项目开启runner
进入项目配置页,点右上角的齿轮图标,点Runners
在Runner配置页面的下方有一个Enable for this project
按钮,点击启动它,注意: Runner可以注册多个,每个项目可以独立的选择运行在哪些Runner上。
如你注册了两个Runner: Window和Linux,然后你有项目 a, b。a需要在Window上运行,b需要在Linux运行,那么你a启动Window runner,b启动Linux runner。假如还有一个c项目,需要在Window和Linux上运行,就启动两个
配置 .gitlab-ci.yml
项目根目录添加.gitlab-ci.yml
文件,如:
stages:
- install_deps
- build
cache:
key: ${CI_BUILD_REF_NAME}
paths:
- node_modules/
# 安装依赖
install_deps:
stage: install_deps
only:
- develop
- master
script:
- cnpm install
# 编译
build:
stage: build
only:
- develop
- master
script:
- gulp build
这个就是你要告诉CI要做什么,only是指定哪些分支才会执行,比如有些项目需要安装依赖结束后执行单元测试,比如这样的
stages:
- install_deps
- lint
- test
- build
cache:
key: ${CI_BUILD_REF_NAME}
paths:
- node_modules/
- bower_components/
# 安装依赖
install_deps:
stage: install_deps
only:
- develop
- master
script:
- cnpm install
- bower install --allow-root
# 运行代码检测
lint:
stage: lint
only:
- develop
- master
script:
- gulp jshint
# 运行测试用例
test:
stage: test
only:
- develop
- master
script:
- npm run unit-test
# 编译
build:
stage: build
only:
- develop
- master
script:
- gulp build
文档可以直接看官网的教程,每一个配置都做了详细的说明
README配置Badges
CI执行的结果最直观就是添加Badges到README上,就像Github上的项目一样,如Webpack的Badges配置
使用最多的还是build和coverage,配置这两个特别简单,直接点击Settings -> CI/CD Pipelines
进入配置页
先配置怎么获取coverage值,它给出了一些正则例子备用,也可以完全自己写
第二步,在下方找到Build status
和Coverage report
,复制自己需要的格式粘贴到README文件中,效果