CI
,Continuous Integration,持续集成。CD
,Continuous Deployment,持续部署。CICD
一般合称,无需特意区分二者区别。从开发、测试到上线的过程中,借助于 CICD 进行一些自动化处理,保障项目质量。
CICD
与 git 集成在一起,可理解为服务器端的 git hooks
: 当代码 push 到远程仓库后,借助 WebHooks
对当前代码在构建服务器(即 CI 服务器,也称作 Runner)中进行自动构建、测试及部署等。
它有若干好处:
.dev.shanyue.tech
此种地址由于近些年来 CICD 的全面介入,项目开发的工作流就是 CICD 的工作流,请看一个比较完善的 CICD Workflow。
CICD
集成于 CICD 工具及代码托管服务。CICD 有时也可理解为进行 CICD 的构建服务器,而提供 CICD 的服务,如以下产品,将会提供构建服务与 github/gitlab 集成在一起。
jenkins
Travis CI
如果你们公司没有 CICD 基础设置,那么你可以尝试 github 免费的 CICD 服务: github actions (opens new window)。
公司一般以 gitlab CI
作为 CICD 工具,此时需要自建 gitlab Runner
作为构建服务器。
每一家 CICD 产品,都有各自的配置方式,但是总体上用法差不多。以下 CI 脚本指当在 master 有代码变更时,自动部署上线。
- deploy:
- stage: deploy
- only:
- - master
- script:
- - docker build -t harbor.shanyue.tech/fe/devtools-app
- - docker push harbor.shanyue.tech/fe/devtools-app
- - helm upgrade -install devtools-app-chart .