当前位置:网站首页>请问什么是 CICD
请问什么是 CICD
2022-08-01 23:03:00 【紫微前端】
CI
,Continuous Integration,持续集成。CD
,Continuous Deployment,持续部署。
CICD
一般合称,无需特意区分二者区别。从开发、测试到上线的过程中,借助于 CICD 进行一些自动化处理,保障项目质量。
CICD
与 git 集成在一起,可理解为服务器端的 git hooks
: 当代码 push 到远程仓库后,借助 WebHooks
对当前代码在构建服务器(即 CI 服务器,也称作 Runner)中进行自动构建、测试及部署等。
它有若干好处:
- 功能分支提交后,通过 CICD 进行自动化测试、语法检查等,如未通过 CICD,则无法 CodeReview,更无法合并到生产环境分支进行上线
- 功能分支提交后,通过 CICD 检查 npm 库的风险、检查构建镜像容器的风险等
- 功能分支提交后,通过 CICD 对当前分支代码构建独立镜像并生成独立的分支环境地址进行测试,如对每一个功能分支生成一个可供测试的地址,一般是
<branch>.dev.shanyue.tech
此种地址 - 功能分支测试通过后,合并到主分支,自动构建镜像并部署到生成环境 (一般生成环境需要手动触发、自动部署)
由于近些年来 CICD 的全面介入,项目开发的工作流就是 CICD 的工作流,请看一个比较完善的 CICD Workflow。
CICD 工具
CICD
集成于 CICD 工具及代码托管服务。CICD 有时也可理解为进行 CICD 的构建服务器,而提供 CICD 的服务,如以下产品,将会提供构建服务与 github/gitlab 集成在一起。
jenkins
Travis CI
如果你们公司没有 CICD 基础设置,那么你可以尝试 github 免费的 CICD 服务: github actions (opens new window)。
公司一般以 gitlab CI
作为 CICD 工具,此时需要自建 gitlab Runner
作为构建服务器。
一段简单的 CICD 配置
每一家 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 .
边栏推荐
- NgRx Store createSelector 的单步调试和源代码分析
- 【Verilog刷题篇】硬件工程师从0到入门1|基础语法入门
- C#大型互联网平台管理框架源码:基于ASP.NET MVC+EF6+Bootstrap开发,支持多数据库
- Chapter 11 Working with Dates and Times
- Oracle 数据库设置为只读及读写
- Postman 批量测试接口详细教程
- 别看了,这就是你的题呀
- String - Trie
- 基于JAX的激活函数、softmax函数和交叉熵函数
- Error creating bean with name ‘dataSource‘:Unsatisfied dependency expressed through field ‘basicPro
猜你喜欢
小程序毕设作品之微信美食菜谱小程序毕业设计成品(7)中期检查报告
毫秒级!千万人脸库快速比对,上亿商品图片检索,背后的极速检索用了什么神器?
Prufer序列
小程序毕设作品之微信美食菜谱小程序毕业设计成品(8)毕业设计论文模板
From 0 to 1: Design and R&D Notes of Graphic Voting Mini Program
力扣第 304 场周赛复盘
xctf攻防世界 Web高手进阶区 web2
Wechat Gymnasium Appointment Mini Program Graduation Design Finished Work (4) Opening Report
华为无线设备配置双链路冷备份(AP指定配置方式)
从0到100:招生报名小程序开发笔记
随机推荐
Use Jenkins for continuous integration, this knowledge point must be mastered
图论——强连通分量缩点+拓扑排序
perspectiveTransform warpPerspective getPerspectiveTransform findHomography
【C补充】链表专题 - 单向链表
小程序毕设作品之微信美食菜谱小程序毕业设计成品(7)中期检查报告
Three, mysql storage engine - building database and table operation
Nacos配置中心之加载配置
Jmeter是什么
From 0 to 1: Design and R&D Notes of Graphic Voting Mini Program
visual studio code multiple editing
Chapter 19 Tips and Traps: Common Goofs for Novices
小程序毕设作品之微信体育馆预约小程序毕业设计成品(1)开发概要
How to add a game character to a UE4 scene
When solving yolov5 training: "AssertionError: train: No labels in VOCData/dataSet_path/train.cache. Can not train"
Graph Theory - Strongly Connected Component Condensation + Topological Sort
blender3.2.1 unit setting
PHP算法之最接近的三数之和
1. @Component注解的原理剖析
解决 win10 下 ISE14.7的 iMPACT 崩溃问题 - FPGA 笔记
Codeforces CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes!) A-D 题解