0
点赞
收藏
分享

微信扫一扫

使用 GitLab Pipeline 进行持续集成


GitLab代码提交或推送触发CI pipeline,需要满足以下2点条件:

  1. 仓库根目录下存在有​​.gitlab-ci.yml​​ 文件
  2. 该项目有可用的​​GitLab Runner​

这样,仓库每收到一次push,runner都会自动启动pipeline,结果显示在项目的pipeline页面。

一、​​.gitlab-ci.yml​​文件

​.gitlab-ci.yml​​是什么

​.gitlab-ci.yml​​​文件告诉GitLab runner要做什么事情,默认三个stage:​​build​​​,​​test​​​,​​deploy​​。不必3个都用,没有job的节点会被忽略。

​.gitlab-ci.yml​​有版本控制,因此各个分支或fork可以使用自己的pipelines和job。

创建一个​​.gitlab-ci.yml​

注意:​​YAML​​文件对缩进有强校验,请使用空格,不要使用tabs。

before_script:
- apt-get update -qq && apt-get install -y -qq sqlite3 libsqlite3-dev nodejs
- ruby -v
- which ruby
- gem install bundler --no-ri --no-rdoc
- bundle install --jobs $(nproc) "${FLAGS[@]}"

rspec:
script:
- bundle exec rspec

rubocop:
script:
- bundle exec rubocop

推送到远程仓库:

git add .gitlab-ci.yml
git commit -m "add .gitlab-ci.yml"
git push origin master

二、GitLab Runner

Runner负责执行​​.gitlab-ci.yml​​文件中定义的job,可以是虚拟机、vps、裸机、docker容器或容器集群。GitLab和Runner之间通过API接口通信,因此唯一要求是Runner机器网络可通。

项目的Settings-->CI/CD-->Runners页面可以查看到是否有可用的Runner。

安装与配置

主要几个步骤:

1)安装
参考文档 ​​​https://docs.gitlab.com/runner/install/​​

2)注册,区分​​Shared Runner​​​和​​Specific Runner​

  • ​Shared Runner​​:公共的所有项目都可用的runner,需要admin用户拿到gitlab全局的token
  • ​Specific Runner​​:专为某个项目服务的runner,需要拿到项目的注册token

参考​​https://docs.gitlab.com/runner/register/​​

3)启动runner服务
runner注册之后是需要启动的,命令​​​sudo gitlab-runner run​​,否则你的pipeline将一直处于pending状态。

4)测试一下

 

使用 GitLab Pipeline 进行持续集成_持续集成

CI/CD->pipeline页面

使用 GitLab Pipeline 进行持续集成_git_02

每一次push都会触发Pipeline



举报

相关推荐

0 条评论