持续集成.md 1.5 KB

持续集成

前言

持续集成(Continuous Integration, CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。 每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

组件

目前医务通采用的是 Jenkins + Gogs + Ansible 实现的 CI 架构。源码管理使用 Gogs 工具,Jenkins 作为构建任务工具,提供了简单易用的 Web GUI,可以触发构建、查看构建详情、构建产物自动部署等。生产环境多个服务器,使用 Ansible 做自动部署。

由于历史原因,没有接入 Sonar 一类的代码质量检测工具,由于目前代码库非常大,而且编程语言和风格比较多,接入 Sonar 需要大量的时间和人力去处理此前的代码质量问题,先作为低优先级任务。

graph LR
components(组件)

automate(自动化构建)
  Jenkins

git(代码协作)
  Gogs

deploy(部署工具)
 Ansible

code_quality(代码质量检测)
  sonarqube(Sonarqube)

components-->automate
components-->git
components-->deploy
components-->code_quality

automate-->Jenkins

git-->Gogs

deploy-->Ansible

code_quality-->sonarqube

使用

TODO

容器化

TODO

规划

  • [ ] 内服 205 升级硬件,提高构建性能

  • [ ] 使用 Drone 替代 Jenkins 作为轻量构建工具