天天看点

gitlab ci/cd介绍

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:暂停状态,暂时不会接收新的作业