上一篇讲了 Docker 的使用,这篇一样经过一个简单示例,来说讲 GitLab CI。html
gitlab-ci 全称是 gitlab continuous integration,也就是基于 gitlab 的持续集成工具。中心思想是当每一次
push到gitlab的时候,都会触发一次脚本执行,而后脚本的内容包括了测试,编译,部署等一系列自定义的内容。
高版本的 GitLab 自带了 GitLab CI,因此不须要另外安装。node
GitLab-Runner 是脚本执行的承载者,GitLab-CI 事先注册好 GitLab-Runner,再 push 代码,对应的 Runner 就会执行你所定义的脚本。git
Gitlab Runner安装方式有两种,一种是直接二进制文件安装,一种是基于docker镜像安装。docker
[1] 下载对应操做系统的二进制包,我这里使用的是mac版本,npm
sudo curl --output /usr/local/bin/gitlab-ci-multi-runner https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-darwin-amd64
[2] 给 gitlab-ci-multi-runner 设置权限segmentfault
sudo chmod +x /usr/local/bin/gitlab-ci-multi-runner
以上是官方安装文档,若是有问题,能够手动到版本下载列表下载对应的版本,而后复制到/usr/local/bin/
目录下 ---- 反正我是本身下载安装才能用的,泪目 T T后端
[3] 注册runner
首先,进入到你的 gitlab 项目网页,找到 Settings -> Pipelines,而后找到对应的 url 和 token缓存
而后在终端输入bash
gitlab-ci-multi-runner register
而后刷新你的网页,会看到服务器
说明注册成功了。
另外,咱们能够经过 gitlab-ci-multi-runner list
查询你注册的runner ,用 gitlab-ci-multi-runner status
查看 runner 服务是否运行中。
[1] 先获取 gitlab-runner 镜像
sudo docker pull gitlab/gitlab-runner:latest
[2] 启动 gitlab-runner container
sudo docker run -d --name gitlab-runner --restart always \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest
[3] 注册runner
sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register 注册过程略,方式同方式一步骤3.
GitLab CI的一切工做,都是由 .gitlab-ci.yml 来配置的。详细文档能够参考这里
首先,在项目根目录下建立 .gitlab-ci.yml 文件(编辑完要提交到g itlab 才能生效):
#定义 stages,用来定义工做阶段,多个 stages 会按顺序进行 stages: - build - deploy_test - deploy_production # 设置缓存 cache: paths: - node_modules/ - dist/ # 安装依赖 before_script 会在每一个 stages 执行以前运行 before_script: - npm install # 编译 这里对应上方 stages , build: stage: build script: # script 为要执行的命令,能够多条按顺序执行 - npm run build # 部署测试服务器 deploy_test: stage: deploy_test only: # only 定义触发分支,即只有在dev分支提交是 才执行如下命令 - dev script: - bash scripts/dev.sh # 部署生产服务器 deploy_production: stage: deploy_production only: - master script: - bash scripts/deploy.sh
配置完成后,当你在项目 push 代码到 gitlab 的时候,就会触发 gitlab-ci,而后执行你定义的代码。
能够在
running 表示正在运行,passed 表示经过了。
ps:有个容易遇到的坑,当你卡在 pending 不动的时候,能够看看你的 runner 是否设置了 '无 tag 标签也运行'
回到你的 runner,点编辑
而后,勾选第二项 Run untagged jobs
运行日志能够在这里查看
那么到这,GitLab CI 的基本使用,已经完成啦,赶快去试一下吧 :)
参考资料:
gitlab-runner 安装
gitlab ci yaml 配置
【后端】gitlab之gitlab-ci自动部署