Gitlab-CI是gitlab8.0之后自带的一个持续集成系统,中心思想是当每一次push到gitlab的时候,都会触发一次脚本执行,然后脚本的内容包括了测试,编译,部署等一系列自定义的内容。
Gitlab-CI的脚本执行,需要自定义安装对应的gitlab-runner来执行,代码Push之后,webhook检测到代码变化,就会触发gitlab-CI,分配到各个Runner来运行相应的脚本script,这些脚本有的是测试项目用的,有的是部署用的。
1.GitLab CI/CD 由一个名为 .gitlab-ci.yml 的文件进行配置,通过配置这个yaml文件来告诉CI要对你的项目做什么,改文件位于仓库的根目录下。文件中指定的脚本由GitLab Runner执行。
2.一旦你已经添加了.gitlab-ci.yaml到仓库中,gitlab将检测到该文件,并使用名为gitlab Runner的工具运行你的脚本。
3.仓库一旦收到任何推送,GitLab将立即查找.gitlab-ci.yml文件,并根据文件的内容在Runner上启动作业。
4.这些脚本被分组到jobs,它们共同组成一个pipeline。一个最简单的.gitlab-ci.yml文件可能是这样的:
before_script:
- apt-get install rubygems ruby-dev -y
run-test:
script:
- ruby --version 6
在gitlab中,Runner运行你定义在.gitlab.yaml中的作业(job),一个Runner可以是一个虚拟机,物理机,docker容器,或者一个容器集群。
GitLab与Runner之间通过API进行通信,因此只需要Runner所在的机器有网络并且可以访问GitLab服务器即可。
1.首先,定义.gitlab-ci.yaml文件。在这个文件中就定义了要执行的job和命令。
2.接着,将文件推送至远程仓库
3.最后,配置runner,用于运行job
shared共享类型:运行整个平台项目的作业(gitlab)
group项目组类型,运行特定group下的所有项目的作业(group)
specific项目类型,运行指定的项目作业(project)
locked:锁定状态,无法运行项目作业
paused:暂停状态,暂时不会接收新的作业