1.gitlab持续集成
概要
本文基于MacOs Mojave 10.14.2环境讲解,需要提前安装Mac包管理器brewhome
, 推荐使用brew安装软件。
安装地址:https://brew.sh/
gitlab提供了一套优秀的持续集成方案
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
2. gitlab-ci
GitLab-CI就是一套配合GitLab使用的持续集成系统, 而且GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的, 通常每个项目中需要一个.gitlab-ci.yml
文件,此文件需要放入到项目根目录,内容是属于这个工程的软件集成脚本,示例:
stages:
- test
- build
- cleanup_last
test_job:
# 执行测试用例
stage: test
tags: # build gitRunner的tag标签
- build
script:
- echo '开始执行测试用例'
build_job:
stage: build
tags: # build gitRunner的tag标签
- build
script:
- chmod +x ./build/ci.sh
- ./build/ci.sh
cleanup_last_job:
# 场景为清理
stage: cleanup_last
# 指定哪个ci runner跑该工作
tags:
- build
# 所需执行的脚本
script:
- pwd
- ls
- docker -v
# 在哪个分支上可用
only:
- master
#触发条件为手工执行
when: manual
tags: GigLab-Runner注册时候需要关联到tag的标识,下面讲解gitlab-runner注册时会再提到
3. GitLab-Runner
GitLab-Runner是配合GitLab-CI进行使用的
Runner类型
GitLab-Runner可以分类两种类型:Shared Runner(共享型)和Specific Runner(特定型)。
名称 | 类型 | 描述 |
---|---|---|
Shared Runner | 共享型 | 一个runner为多个项目服务 |
Specific Runner | 特定型 | 一个runner为特定的项目服务 |
安装GitLab-Runner
# 安装命令
brew install gitlab-runner
# 安装查看是否安装成功
brew list
注册GitLab-Runner
安装完gitlab-runner后,此时可以使用gitlab-runner register
命令注册Runner,向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token
。
token
: 是为了确定你这个Runner是所有工程都能够使用的Shared Runner还是具体某一个工程才能使用的Specific Runner。
- 如果要注册Shared Runner,你需要到管理界面的Runners页面里面去找注册token。
- 如果要注册Specific Runner,你需要到项目的设置的Runner页面里面去找注册token。
本次讲解的是到gitlab项目netcore
分组中找到Runners页面里面找到token,
# 注册
gitlab-runner register
# 1. 输入Please enter the gitlab-ci coordinator URL
https://gitlab.com/
# 2. Please enter the gitlab-ci token for this runner
-2xzy1snseByxzxxxx
# 3. Please enter the gitlab-ci description for this runner
first-runner
# 4. lease enter the gitlab-ci tags for this runner
# 此处输入的tags和.gitlab-ci.yml配置中的tags需要关联的
build
# 5. Please enter the executor
shell
# 6. 到此runner注册成功
此时.gitlab-ci.yml
和gitlab-runner
准备就绪,终于到了激动人心的时刻了,此时将变更推送到gitlab项目仓库中,gitlab服务器会自动识别.gitlab-ci.yml
构建步骤和gitlab-runner
构建工人。
如上图所示,将项目打包部署为镜像并推送到阿里云镜像仓库,全过程只需要几分钟就可以完成打包部署,大家是不是觉得很赞。
gitlab-runner会按照.gitlab-ci.yml
事先定义好的步骤执行自动化构建编译部署,这样只要有成员提交代码,都会自动集成到开发环境,完成一次发布部署。这样是不是很香。
说明:
- gitlab服务器和gitlab-runner可以分别部署再不同服务器上
- gitlab-runner可以部署在任意服务器,可以在局域网内
示例源码:
https://github.com/m344739968/test-webapi.git
可以参考这篇博客了解更多的GitLab CI/CD 的执行流程
https://blog.csdn.net/ml344739968/article/details/87860220