美文网首页
前端工程化 — CI/CD

前端工程化 — CI/CD

作者: 南慕瑶 | 来源:发表于2019-08-26 21:16 被阅读0次

一、概念

1.CI(Continuous integration,持续集成):

频繁地(一天多次)将代码集成到主干。

2.CD(Continuous delivery,持续交付):

持续集成的下一步。指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。

如果评审通过,代码就进入生产阶段。

3.CD(continuous deployment,持续部署):

持续交付的下一步。指的是,代码通过评审以后,自动部署到生产环境。

【注】

持续交付与持续部署的区别:

持续交付:质量团队或用户评审通过后,手动部署。

持续部署:质量团队或用户评审通过后,自动部署。

二、意义

1.CI(持续集成):

(1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。

(2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

2.CD(持续交付):

保证不管怎么更新,软件是随时随地可以交付的。

3.CD(持续部署):

保证代码在任何时刻都是可部署的,可以进入生产阶段。

三、流程

1.提交

开发者提交代码。

2.测试(第一轮)

代码仓库对commit操作配置钩子。只要提交代码合并进主干,就会跑自动化测试。

三种测试:

·单元测试:针对函数或模块的测试

·集成测试:针对整体产品的某个功能的测试,又称功能测试

·端对端测试:从用户界面直达数据库的全链路测试

3.构建

测试通过,代码即可合并入主干。就算可以交付了。

交付后,就先进行构建(build),再进入第二轮测试。

所谓构建,指的是将源码转换为可以运行的实际代码,比如安装依赖,配置各种资源(样式表、JS脚本、图片)等等。

常用的构建工具如下:

·Jenkins

·Travis

·Codeship

·Strider

4.测试(第二轮)

全面测试。单元测试和集成测试都会跑,有条件的话,也要做端对端测试。

所有测试以自动化为主,少数无法自动化的测试用例,就要人工跑。

5.部署

通过了第二轮测试,当前代码就是一个可以直接部署的版本(artifact)。

将这个版本的所有文件打包( tar filename.tar *)存档,发到生产服务器。

生产服务器将打包文件,解包成本地的一个目录,再将运行路径的符号链接(symlink)指向这个目录,然后重新启动应用。这方面的部署工具有AnsibleChefPuppet等。

6.回滚

一旦当前版本发生问题,就要回滚到上一个版本的构建结果。最简单的做法就是修改一下符号链接,指向上一个版本的目录。

#整理自:http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html

相关文章

  • 前端工程化 — CI/CD

    一、概念 1.CI(Continuous integration,持续集成): 频繁地(一天多次)将代码集成到主干...

  • 工程健康治理

    工程化 定义: 为项目搭建一系列的周边工具,打通 CI / CD 流程 解决问题: 解决标准操作流程(SOP 标准...

  • 前端初探 Gitlab CI/CD

    前言 纵观人类历史的发展以及三次工业革命,你会发现利用机器来替代部分人力劳动,将重复的工作自动化从而解放生产力都是...

  • Prepare

    CI/CD The adoption of CI/CD has changed how developers an...

  • Jenkins 介绍

    Jenkins构建CI/CD CI/CD是什么? CI(Continuous integration,中文意思是持...

  • CI/CD/CD

    CI 持续集成CONTINUOUS INTEGRATION持续集成的环境中,开发人员会频繁提交代码到主干。持续集成...

  • Linux系统环境基于Docker搭建Jenkins实战

    关于CI,CD&CD CI->Continuous Integration:持续集成 CD->Continuous...

  • 工程化 CI/CD 管道安全实践

    8 月 13 日, Eolink 联合 Q&EMeetup 举办以 “前端持续交付& “外循环” 开发实践” 为主...

  • Auto DevOps之gitlab CI/CD

    @[toc] CI/CD介绍 CI(Continuous Integration)跟CD(Continuous D...

  • jenkins(pipeline) 前端打造 CI/CD

    使用 jenkins(pipeline) 打造 CI/CD,jenkins 安装文档,帮助你填坑. docker ...

网友评论

      本文标题:前端工程化 — CI/CD

      本文链接:https://www.haomeiwen.com/subject/vnxisctx.html