2 октября 2012 г. CI Python

Python. Пользуемся Continuous Integration сервисом Travis CI

Где-то с полгода знаю о классном сервисе Travis-CI, но только сегодня нашёл время его опробовать на одном из своих проектов опубликованных на GitHub.

Travis CI - это Continuous Integraton сервис для множества языков программирования (C, C++, Clojure, Erlang, Go, Groovy, Haskell, Java, JavaScript/Node.js, Perl, PHP, Python, Ruby, Scala), и меня конечно же заинтересовала поддержка Python.

Как пользоваться Тревисом описано в документации, но ниже я как раз это и опишу:

  1. Для работы с сервисом необходимо иметь аккаунт на GitHub;

  2. Войдите на http://travis-ci.org/ и авторизуйтесь через GitHub;

  3. После авторизации войдите в свой Profile и вы увидите все ваши репозитории, выберите нужные и переведите их из состояни OFF в состояние ON, тем самым вы включите "Travis service hook" для вашего репозитория в GitHub.

Примерно как в примере:

Теперь перейдем к настройке.

Настройка

Вам надо добавить в корень своего репозитория файл ".travis.yml", например с таким содержимым:

# Тут указывается используемый в проекте язык программирования, можно указать несколько
language: python

# Далее, укажите версии python для которых нужно производить сборки
python:
  - "2.6"
  - "2.7"

# Параметры окружения
env:
  - DJANGO_VERSION=1.4.1

# Команда для установки зависимостей в окружение (при этом доступны переменные из секции "env")
install:
  - pip install -q Django==$DJANGO_VERSION
  - pip install -r requirements.txt --use-mirrors

# Команда для запуска тестов, в моем случае они запускаются именно так
script: python multi_sessions/tests.py

Тревис запустит ваш проект под virtualenv, с уже предустановленными пакетами: pytest, nose и mock, так что их указывать в секции "install" не имеет смысла.

Тревис будет запускать несколько сборок для каждой указанной версии python, т.е. если я указал 2 версии python то Тревис подготовит 2 сборки. А если укажете несколько "DJANGO_VERSION", то Тревис запустит для каждого python по версии "DJANGO_VERSION". Вообщем получается матрица.

Для проверки файла настроек можно использовать https://github.com/travis-ci/travis-lint

Для применения файла настроек сделайте git-push своего репозитория в GitHub.

Использование

После того как вы указали какой репозиторий надо мониторить (через "Travis service hook") и сделали push конфига, воркеры Тревиса получат изменения из репозитория, соберут окружение и запустят секцию "script" (то есть конкретно наши тесты).

По результатам сборки будет составлен отчет и послан на почту, так же его можно будет посмотреть на странице проекта в Тревисе, например для моего проекта https://travis-ci.org/#!/adw0rd/django-multi-sessions

Соответственно могут быть 3 статуса:

  • Красный - возникли ошибки при сборке;
  • Жёлтый - промежуточное состояние, возможно предупреждения или проект просто на этапе сборки;
  • Зелёный - сборка прошла успешно!

Для отображения статуса сборки можно использовать картинку, которую следует добавить например в README.rst:

.. image:: https://secure.travis-ci.org/adw0rd/django-multi-sessions.png
    :target: http://travis-ci.org/adw0rd/django-multi-sessions

Будет примерно такой результат:

Ну вот и всё, попробуйте Travis-CI и он вам обязательно понравится!

Что ещё почитать?

Комментарии

Оставьте свой комментарий

Markdown