美文网首页
前端工程化 — 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

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