- PVSM.RU - https://www.pvsm.ru -
Всегда приятно иметь статистику о состоянии технической части (кода) проекта, этим занимается coviolations.io [1]. Но для его использования нужно какое-то ci-решение. Не каждому захочется поднимать jenkins/travis/etc на своём сервере, а будет проще прибегнуть к использованию облачных сервисов. Мы рассмотрим два наиболее популярных: travis-ci [2] и drone.io [3].
Как «жертву» будем использовать обычный django проект — сам coviolations [4]. Для проектов на ror/nodejs/flask/etc всё будет почти аналогично. Как результат мы получим пачку статистики и графиков [5].
Мы хотим проверять 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
.
[6]Задание описывается в .travis.yml
, по его содержимому есть хорошая документация [7]. Для нашего проекта он будет содержать:
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$+ в месяц [8].
Из плюшек сервис предоставляет:
[9]В 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$+ в месяц [10].
Из дополнительных удобств сервис предоставляет:
travis-ci | drone-io | |
---|---|---|
Поддержка pull request'ов | Да | Нет |
Возможность деплоя | Нет | Да |
Проставление статуса коммитам | Да | Нет |
Сохранение артефактов | Нет | Да |
Api для сторонних сервисов | Да | Нет |
Цена | 129$+ в месяц [8] | 25$+ в месяц [10] |
Автор: nvbn
Источник [11]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/50049
Ссылки в тексте:
[1] coviolations.io: https://coviolations.io/
[2] travis-ci: https://travis-ci.org/
[3] drone.io: https://drone.io/
[4] coviolations: https://github.com/nvbn/coviolations_web
[5] пачку статистики и графиков: https://coviolations.io/#/projects/nvbn/coviolations_web/
[6] Image: http://habrastorage.org/storage3/8ac/93d/da1/8ac93dda1e350635edaee2dcda614c2d.png
[7] документация: http://about.travis-ci.org/docs/user/getting-started/
[8] 129$+ в месяц: http://travis-ci.com/plans
[9] Image: http://habrastorage.org/storage3/7bb/1b6/9f9/7bb1b69f958174b636ecf8dfd68ecbfa.png
[10] 25$+ в месяц: https://drone.io/pricing
[11] Источник: http://habrahabr.ru/post/204900/
Нажмите здесь для печати.