__ icon indicating copy to clipboard operation
__ copied to clipboard

企业前端项目的持续集成

Open noneven opened this issue 9 years ago • 1 comments

在说jenkins之前,先介绍一下前端开源项目的持续集成方案:

比较认可的是(Mocha+Chai)+Travis CI+Coveralls+SauceLabs。

  • 1、Mocha+Chai作单元测试,
  • 2、Travis CI作项目持续集成,
  • 3、Coveralls作测试代码覆盖率,
  • 4、SauceLabs作跨浏览器集成测试。

也就是大家在github上看到的大部分项目的持续集成方案(从各种徽章看)。但是在企业的前端项目中一般不采用Travis CI作为持续集成,而是采用Jenkins,几个重要的原因如下:

  • 1、Travis CI和github强绑定,但是国内还有很多公司采用的SVN作为版本管理工具
  • 2、Travis CI不提供独立部署的CI server,而Jenkins可以独立部署
  • 3、Travis CI不可定制,不像Jenkins一样提供各种插件扩展
  • 4、价格没有优势 所以大家都不约而同的采用了Jenkins作为企业应用的持续集成工具

再说说一般团队的workflow:

  • 1、gulp flow/webpack flow/fis flow + plug-ins开发
    • 集成自动化流程
      • Less / Sass -> CSS 编译
      • CSS**** Autoprefixer 前缀自动补全
      • 自动生成图片 CSS 属性,width & height 等
      • CSS cssnano 压缩
      • CSS Sprite 雪碧图合成
      • Retina @2x & @3x 自动生成适配
      • Imagemin 图片压缩
      • px -> rem 兼容适配方案
      • 智能 WebP 解决方案
      • 去缓存文件 Reversion (MD5) 解决方案
      • ES6/7的babel编译
      • JS 合并压缩按依赖加载
  • 2、eslint作为代码检查工具
  • 3、mocha+chai单元测试(不过很少有团队把这个作为项目的必须流程)
  • 4、gitlab管理项目代码
  • 5、gitlab hook+Jenkins自动部署dev/test/prod

对于1-4步都在前端开发环境中完成,很多团队都集成到一个命令行工具完成(比如tmt-workflow),也有用Electron做成桌面可视化工具(比如weFlow),第五步需要进行(权限管理),开发自测时在dev服务器上,提测QA时部署到测试服务器,上线部署到线上服务器。 可以看到Jenkins在持续集成的过程中作用和意义重大

转载请注明出处

noneven avatar Oct 22 '16 10:10 noneven

开源项目的持续集成推荐文章:

noneven avatar Oct 24 '16 10:10 noneven