持续集成

持续集成的目的,是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。由于我们的代码托管在github上面,所以选择Travis CI来做持续集成是一个不错的选择。

要触发构建工作,需要在项目根目录下面添加一个.travis.yml的文件:

sudo: required

services:
  - docker

env:
  DOCKER_COMPOSE_VERSION: 1.14.0

before_install:
  - sudo rm /usr/local/bin/docker-compose
  - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
  - chmod +x docker-compose
  - sudo mv docker-compose /usr/local/bin

before_script:
  - docker-compose -f docker-compose.yml up --build -d

script:
  - docker-compose -f docker-compose.yml run users-service python manage.py test
  - docker-compose -f docker-compose.yml run users-service flake8 project

after_script:
  - docker-compose -f docker-compose.yml down

上面的脚本文件看上去还是很容易的,首先安装docker-compose,然后在执行脚本之前构建镜像,然后执行测试、代码质量检测等操作,最后做一些清理工作。

然后我们登录Travis CI,在个人页面,确保将当前项目激活 travis-item

然后我们可以提交代码,推送到GitHub上,这应该会触发一次构建。然后我们同样的可以前往Travis CI查看构建状态: travis-status

通过后,你最好能够添加一个Travis的状态徽章在README.md文件中,这样能让别人明白你的项目状态。

[![Build Status](https://travis-ci.org/cnych/flask-microservices-users.svg?branch=master)](https://travis-ci.org/cnych/flask-microservices-users)

就目前来说,虽然我们的项目还相对比较简单,但是基本上我们的工作流已经能够跑得非常顺畅了:

  • 本地编码
  • 提交推送到GitHub
  • 通过Travis来完成自动化测试