使用Gitlab CI进行持续集成

作者: 叠搭宝箱 | 来源:发表于2016-02-15 10:05 被阅读14638次

公司用的gitlab社区版, 跑CI的话需要折腾一下, 总体来说, 本地RUNNER最方便

原理

在Gitlab-CI中有一个叫 Runner 的概念, 按照官方定义, Runner一共有三种类型

  • 本地Runner (优点:部署方便 , 缺点:使用的是开发机器的资源 MAC/WIN)
  • 普通的服务器上的Runner (优点: 没找到 , 缺点: 在RHEL系列的机器里特别难配置,至今未成功过)
  • 基于Docker的Runner (优点: 这可是Docker啊就问你怕不怕 , 缺点:至今没研究明白怎么用maven本地仓库,Build时候处理依赖极慢)

注意, 在你的项目配置页面会有如下信息

Runner安装成功之后, 就可以根据上图中的lo URL和Token 跟CI进行绑定, 之后这两端之间就会各种消息交互, 然后自动的Build&返回结果

使用

先来安装 gitlab-ci-multi-runner , 在MAC下使用最新版的 homebrew 安装即可, 其他系统见官方文档

$ brew update
$ brew install gitlab-ci-multi-runner

#然后启动Runner去和CI进行绑定
$ gitlab-ci-multi-runner register

#-->然后让你输入上图的CI URL
#-->然后让你输入上图的Token
#-->然后随便给Runner命名
#-->然后类型的话, 请务必选 Shell
#-->完毕

#把Runner当成Service启动
$ cd ~
$ gitlab-ci-multi-runner install
% gitlab-ci-multi-runner start

travis-ci 类似, 请在你的项目根目录下创建一个文件 .gitlab-ci.yml , 加入以下测试代码

build:
    script: "pwd & mvn test"

不出意外的话, 项目中已经有一个Build在开始跑了

注意事项

  • 本地Runner用的bash去构建的, 所以务必确保把环境变量配置全, 比如 JAVA_HOME, PATH

相关文章

网友评论

  • 为易:Gitlab Runner 和 Gitlab 不能安装在同一个机器
    这句是什么意思呢?为什么不能安装在同一个机器呀
    394314820c3e:理论上是可以的,但是不建议装在一起,因为影响性能。runner最build 的过程中可能很耗资源。gitlab 在这里应用runner的概念就是把跑CI的机器和gitlab的机器分开,让project的提供自己的机器作为runner去跑Ci, gitlab服务器只负责触发动作。
  • 53e543580415:如果对 docker mven 有困惑,可以看看这个哦,虽然不理解 java,但是你说的这个问题解决了的。 :relieved: http://80to.me/2016/07/08/JAVA%E7%9A%84Docker%E5%BC%80%E5%8F%91%E9%83%A8%E7%BD%B2%E7%8E%AF%E5%A2%83/
  • 93b7248d9a52:Running with gitlab-ci-multi-runner 1.4.1 (fae8f18)
    Using Docker executor with image php:5.6 ...
    Pulling docker image php:5.6 ...
    Running on runner-9c9945ce-project-3-concurrent-0 via fdae94bb41e0...
    Cloning repository...
    Cloning into '/builds/123/123456'...
    fatal: http://gitlab-ci-token:xxxxxx@OneAPM.ceshi.com/123/123456.git/info/refs not valid: is this a git repository?
    ERROR: Build failed: exit code 1
    构建遇到这个问题,找了很多资料没解决,求帮忙看下
    5f429ac773f8:/etc/gitlab-runner/config.toml
    extra_hosts = ["ubuntu:172.18.120.3"] # ubuntu为域名, ip地址为仓库服务器
  • snowdream:太简单了
  • hainuo:建议作者,另来一篇详细的 讲持续集成的 文章,让其他朋友,按照你的步骤操作下

本文标题:使用Gitlab CI进行持续集成

本文链接:https://www.haomeiwen.com/subject/gjlpkttx.html