拓展DevOps/SRE

使用GitLab Pipeline进行持续集成

2018-12-18  本文已影响0人  treeph

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:buildtestdeploy。不必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 RunnerSpecific Runner

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

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

4)测试一下


CI/CD->pipeline页面 每一次push都会触发Pipeline

引用一篇文章,讲解的非常清楚,供参考:https://www.cnblogs.com/cnundefined/p/7095368.html

上一篇 下一篇

猜你喜欢

热点阅读