GlassX 自动化流程

692 查看

GlassX 是我们现在在做的google glass平台,包括了android开发,web 开发等等,近期我们开始了我们的自动化工作流,以保证在Google IO 大会期间的迭代速度。

现状

  1. 服务器依靠capistrano自动部署
  2. 代码托管在gitcafe上
  3. 客户端(android pc)手动构建发布

遇到的问题

  1. 服务器权限分配是个问题
  2. 没有CI系统,即便写了测试,也不能保证大家都在本地跑一遍
  3. 部署不是真正的自动化,还得在本地跑部署命令(近期团队的网络有点不好)
  4. android端(左手)的构建十分麻烦,配环境十分麻烦。

解决方案

  1. 首先我们将我们的代码迁移到了github上。
  2. 购买了circleci作为的CI系统
  3. 优化发布流程

服务端做法

首先我们的代码测试覆盖率一般会保持在70%左右,只有测试通过,那么主体功能基本没有bug,再者我们开发采用的dev和master两条分支开发,每一次合并代码的时候我们会做代码审核,然后进行合并。这样基本保证我们的master分支是可以部署的。

ok,先说明我们的服务端使用的技术:

开发语言:ruby
所用框架:ruby on rails
部署工具:capistrano
测试工具:rspec

思路是这样的:

每一次合并到master分支时候,circleci运行测试并且当测试通过的时候启动我们的capistrano脚本进行部署,circleci的脚本如下:

machine:
  ruby:
    version: 2.1.2
  services:
    - redis
general:
  branches:
    only:
      - master
deployment:
  production:
    branch: master
    commands:
      - bundle exec cap production deploy

具体可以参考configuration

效果如下:

android 参考