GitLab CI是开源的持续集成服务,GitLab Runner是一个开源项目,用于运做任务,并把结果发送回GitLab,它与GitLab CI一块儿使用。git
持续(Continuous integration ,缩写CI)是一种软件工程流程,是将全部软件工程师对于软件的工做副本持续集成到共享主线(mainline)的一种举措。该名称最先由Grady Booch 在他的布区方法中提出,不过他并不支持在一天中进行数次集成。以后举措成为极限编程驱动开发(TDD)的做法中,一般还会搭配自动单元测试。持续集成的提出主要是为解决软件进行系统集成时面临的各项问题。-维基百科docker
持续集成通常包括一些流程:编程
合并代码 安装依赖 编译 测试 发布gitlab
持续集成必须依靠如下原则:单元测试
持续集成能够快速发现错误,定位错误也比较容易,它的目的就是让产品能够快速迭代,同时还能保证高质量。核心措施代码集成到主干前,必须经过自动化测试。测试
GitLab CI是为GitLab提供持续集成服务的一整套系统。在GitLab8.0之后的版本是默认集成了GitLab-CI而且默认启用的。 使用GitLab CI须要在仓库跟目录建立一个gitlab-ci.yml的文件,它用来指定持续集成须要运行的环境,以及要执行的脚本。还须要设置一个gitlab-runner,当有代码push变动的时候,gitlab-runner会自动开始pipeline,并在gitlab上显示持续集成的结果。cdn
GitLab Runner是使用Go语言编写的,能够作为一个二进制文件运行,不须要特定的语言要求,他建立了一个持续集成的的环境,所须要的程序使用Docker来安装,配置好GitLab Runner运行的环境。GitLab Runner实际上都是docker container,由GitLab Runner来自动建立,运行的环境由GitLab Runner程序控制,使用docker来创建runner,使得每个虚拟环境都干净,轻量,相互隔离,互不影响。 GitLab-Runner通常都是配合GitLab-CI使用的,在GitLab里面定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工做。 GitLab-Runner执行状况以下: blog
gitlab-runner能够在不一样的主机上部署,也能够在同一个主机上设置多个gitlab-runner ,还能够根据不一样的环境设置不一样的环境,好比咱们须要区分研发环境,测试环境以及正式环境等。ip