概念
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
持续集成的好处
- 快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
- 防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
简介 & 原理
自动部署涉及了若干个角色,主要介绍如下
- GitLab-CI
这个是一套配合GitLab使用的持续集成系统,是GitLab自带的,也就是你装GitLab的那台服务器上就带有的。无需多考虑。.gitlab-ci.yml的脚本解析就由它来负责。 - GitLab-Runner
这个是脚本执行的承载者,.gitlab-ci.yml的script部分的运行就是由runner来负责的。GitLab-CI浏览过项目里的.gitlab-ci.yml文件之后,根据里面的规则,分配到各个Runner来运行相应的脚本script。这些脚本有的是测试项目用的,有的是部署用的。
GitLab简单原理图
Runner类型
- Shared Runner:这种Runner(工人)是所有工程都能够用的。只有系统管理员能够创建Shared Runner
- Specific Runner:这种Runner(工人)只能为指定的工程服务。拥有该工程访问权限的人都能够为该工程创建Shared Runner
.gitlab-ci.yml
这个是在git项目的根目录下的一个文件,记录了一系列的阶段和执行规则。GitLab-CI在push后会解析它,根据里面的内容调用runner来运行。
安装 GitLab Runner
# https://gitlab.com/gitlab-org/gitlab-runner
# For RHEL/CentOS/Fedora
sudo yum install gitlab-runner
# For RHEL/CentOS/Fedora(找不到再执行这个)
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
注册GitLab Runner
docs:https://docs.gitlab.com/runner/register/index.html
安装好gitlab-ci-multi-runner这个软件之后,我们就可以用它向GitLab-CI注册Runner了。
向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token。其中,token是为了确定你这个Runner是所有工程都能够使用的Shared Runner还是具体某一个工程才能使用的Specific Runner。
如果要注册Shared Runner,你需要到管理界面的Runners页面里面去找注册token。
如果要注册Specific Runner,你需要到项目的设置的Runner页面里面去找注册token。
# 查看帮助
gitlab-runner register -h
# 手动按提示创建
gitlab-runner register
# 一条命令执行方式
gitlab-runner register \
--non-interactive \
--url "https://gitlab.com/" \
--registration-token "PROJECT_REGISTRATION_TOKEN" \
--executor "shell" \
--description "cbs-runner" \
--tag-list "cbs,autopush" \
--run-untagged \
--locked="false" \
执行完成后,我们会在 设置 - CI/CD - Runner 下看到我们注册的Runner
运行Runner
Runner注册完成之后还不行,还必须让它运行起来,否则它无法接收到GitLab-CI的通知并且执行软件集成脚本。怎么让Runner运行起来呢?
gitlab-runner提供了这样一个命令,你可以通过他来处理。
gitlab-runner run-single --help
编写 .gitlab-ci.yml
stages:
- pushtonewhope
pushtonewhope:
stage: pushtonewhope
script:
- ./pushtonewhope.sh
only:
- cbs
tags:
- autopush
将.gitlab-ci.yml放入项目根目录,这样就ok了
文章评论