使用gitlab-ci做什么
- 自动化测试
- 构建项目
- 发布项目
安装GitLab Runner
我用的是mac系统 参考文档Install GitLab Runner on macOS
安装步骤:
- 下载二进制文档到系统(提醒:不要用Homebrew安装,因为gitlab没有维护,踩过坑):sudo curl --output /usr/local/bin/gitlab-runner gitlab-runner-downloads.s3.amazonaws.com/latest/bina…
- 赋予gitlab-runner执行权限 sudo chmod +x /usr/local/bin/gitlab-runner
- cd ~
- gitlab-runner install
- gitlab-runner start
注册Registering Runners
我用的是mac系统 参考文档Registering Runners
- 运行gitlab-runner register命令(根据提示填写信息)
- 输入项目所在的gitlab(setting->ci/cd->Runners下获取): Please enter the gitlab-ci coordinator URL (e.g. gitlab.com )
- 输入项目的注册token(setting->ci/cd->Runners下获取): Please enter the gitlab-ci token for this runner
- 输入runner的名称(注册完成后可以再对应的项目下的setting->ci/cd->Runners看到该runner):Please enter the gitlab-ci description for this runner
- 输入runner的标签(根据.gitlab-ci.yml中的tag寻找对应的runner):Please enter the gitlab-ci tags for this runner (comma separated)
- 输入执行的环境(我用本地的mac,所有我选中shell):Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:docker
编写.gitlab-ci.yml配置文件
stages: # 定义Pipeline的阶段,可以多个
- install # 安装依赖包
- test # 执行测试
- build # 构建项目
- deploy # 发布
install_job: # 定义一个工作流job
stage: install # 设置工作流所属的阶段,默认是test
tags: # 定义tags,用来匹配相应的Runner来执行
- runner
script: # 定义后面Runner来执行的具体脚本
- cd ~/Documents/gitlabRunner/ # 移动到要构建执行的项目下,目录自己定
- rm -rf runner # 删除里面已有的项目runner
- git clone git@gitlab.runner.com:app/runner.git # 从gitlab上克隆runner项目
- cd runner # 移动到runner项目中
- yarn install # 安装依赖包
only:
- master # 指定只有master分支变更的才会运行这个阶段
test_job:
stage: test
tags:
- runner
script:
- cd ~/Documents/gitlabRunner/runner
- yarn test # 执行测试
only:
- master
build_job:
stage: build
tags:
- runner
script:
- cd ~/Documents/gitlabRunner/runner
- yarn build # 执行构建
only:
- master
deploy_job:
stage: deploy
tags:
- runner
script:
- cd ~/Documents/gitlabRunner/runner
- yarn publish # 发布代码
only:
- master