使用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服务器只负责触发动作。
      • 党的恩情比山高:如果对 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/
      • yongqi: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