最近组内在编写 react 组件库,涉及到多人协作问题,多人协作肯定会碰到版本管理、代码持续集成等问题;在现在这个大环境下代码版本管理第一解决方案肯定是 git,代码持续集成大家肯定会想到 Jenkins。鉴于公司内部使用自建 gitlab 管理代码,其实 GitLab 中也有持续集成的功能,下面我们就重点说说使用 GitLab 进行持续集成(CI)的方法。
1. GitLab runner
本次实践基于:GitLab Community Edition 10.1.2;
系统基于:windows7 x64企业版。
1.1、什么是 runner?
runner 可以运行你的作业,并将运行结果返回给 GitLab 的工具,通常配合 Gitlab 持续集成使用。
更多内容可以参考官网解释:GitLab Runner
1.2、runner 安装配置
前提:你的机器上有基本的开发环境;git、.net framework4.0 等运行环境。鉴于前端开发有些 node 包经常要依赖 .net framework 所以直接安装一次 vs 是最省事的,将所有 .net framework 环境安装好。
- 创建文件夹:
D:\GitLab-Runner
,并下载 gitlab-runner 安装程序 放置于当前目录下。(下载程序必须改名为:gitlab-runner
) - 以管理员运行git-bash 或者 cmd 或者 powershell 等命令行工具。进入
D:\GitLab-Runner
目录下,下一步开始注册 Runners。 - 注册 Runners
- 查看 windows 服务中是否有 gitlab-runner 服务,如果有就启动,没有在命令行,继续执行:
./gitlab-runner.exe install
即可安装服务,再次查看并启动。 - 修改配置文件
D:\GitLab-Runner\config.toml
在其中[[runner]]
下增加shell='powershell'
。
到此你的 gitlab-runner 就算安装成功了,在你的 gitlab 项目中查看,就会发现,已经有 activated 的 Runners 在运行了。
1.3、runner 使用
使用需要在你的项目中增加配置文件:.gitlab-ci.yml
。
内容中执行的脚本是自己编写的。
stages:
- prepare
- eslint
- test
- deploy
cache:
key: $CI_COMMIT_SHA
untracked: true
prepare:
stage: prepare
script: npm install
eslint:
stage: eslint
script: npm run eslint
test:
stage: test
script:
- npm test
build:
only:
- master@wangjianhui2464/react-components
stage: deploy
script:
- npm run build
upload:
only:
- master@wangjianhui2464/react-components
stage: deploy
script:
- npm run upload
当你在你的仓库中配置好次配置文件之后,每次提交代码 gitlab 就会自动执行相应的 jobs。这样一个持续集成的环境就算搭建成功了。
持续集成有时候会为我们的工程化提供很多便利,可谓是工程化之利器。
文章配图,后续补充。