Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Облачные ci: travis-ci и drone.io

Anna | 15.06.2014 | нет комментариев
Неизменно славно иметь статистику о состоянии технической части (кода) плана, этим занимается coviolations.io. Но для его применения необходимо какое-то ci-решение. Не всякому захочется поднимать jenkins/travis/etc на своём сервере, а будет проще прибегнуть к применению облачных сервисов. Мы разглядим два особенно знаменитых: travis-ci и drone.io.

Как «жертву» будем применять обыкновенный django план — сам coviolations. Для планов на ror/nodejs/flask/etc всё будет примерно подобно. Как итог мы получим пачку статистики и графиков.

Подготовка

Мы хотим проверять PEP8, свежесть пакетов, тесты и покрытие. Для этого сотворим в корне плана.covio.yml:

violations:
  pep8: pep8 . --exclude='*migrations*,*settings*,*components*,*docs*'
  sloccount: sloccount .
  py_unittest:
    command: coverage run manage.py test violations projects tasks services coviolations_web push
    stderr: true
  coverage: coverage report
  pip_review:
    command: pip-review
    nofail: true

Все проверки будут запускаться механически при вызове covio.

travis-ci

Задание описывается в .travis.yml, по его содержимому есть отличная документация. Для нашего плана он будет содержать:

language: python
python:
  - "2.7"
services:
  - mongodb
  - redis-server
before_install:
  - sudo apt-get update -qq
  - sudo apt-get install -qq sloccount
install:
  - pip install -r requirements/ci.txt
  - cp coviolations_web/settings/local_ci.py coviolations_web/settings/local.py
  - ./manage.py syncdb
  - ./manage.py migrate
script:
  - covio

Для открытых планов сервис предоставляется даром, для закрытых — 129$ в месяц.
Из плюшек сервис предоставляет:

  • плашки со рангом: ;
  • работа с pull request’ами;
  • проставление ранга сломан/работает коммитам;
  • rest api для сторонних сервисов (вследствие этому не нужно вручную передавать COVIO_TOKEN).

drone.io

В drone.io задание необходимо описывать на странице плана в самом сервисе. Для coviolations необходимо будет поставить галочки наоборот баз MongoDB и Redis, прописать токен в Environment Variables:

COVIO_TOKEN='17c0f6b3-habr-4d9c-not3-token5af9fe'

И в сегменты Commands описать задание как примитивный скрипт:

sudo apt-get update -qq
sudo apt-get install -qq sloccount
pip install -r requirements/ci.txt
cp coviolations_web/settings/local_ci.py coviolations_web/settings/local.py
./manage.py syncdb
./manage.py migrate
covio

Для открытых планов сервис бесплатен, для закрытых — 25$ в месяц.
Из дополнительных удобств сервис предоставляет:

  • плашка со рангом: ;
  • вероятность в случае удачного заключения деплоить в Heroku, AppEngine, dotColud и на свой сервере по ssh;
  • сохранение артефактов.

Итог

travis-ci drone-io
Помощь pull request’ов Да Нет
Вероятность деплоя Нет Да
Проставление ранга коммитам Да Нет
Сохранение артефактов Нет Да
Api для сторонних сервисов Да Нет
Цена 129$ в месяц 25$ в месяц
 Источник: programmingmaster.ru
Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB