Посты с тэгом continuous integration


Автоматическое развёртывание Django из GitLab

В этой статье я опишу настройку автоматического развёртывания веб-приложения на стеке Django + uWSGI + PostgreSQL + Nginx из репозитория на сервисе GitLab.com. Изложенное также применимо к кастомной инсталляции GitLab. Предполагается, что читатель располагает опытом в создании веб-приложений на Django, а так же опытом администрирования Linux-систем.

Читать дальше →


Поднимаем сложный проект на Django с использованием Docker


Добрый день, коллеги.

Сегодня я расскажу о не совсем простой концепции быстрого (до часа после нескольких тренировок) развёртывания проекта для работы команды, состоящей как минимум из отдельных фронтенд и бэкенд разработчиков.

Исходные данные у нас такие: начинается разработка проекта, в которой планируется «тонкий бэкенд». Т.е. бэк у нас состоит из закешированных страниц (рендерятся любым шаблонизатором), объёмных моделей с сопутствующей логикой (ORM) и REST API, выполняющего роль контроллера. Фактически, View в такой системе редуцировано и вынесено в JS, благо есть разные реакты, ангуляры и прочие вещи, которые позволяют фронтендщикам считать себя «белыми людьми».
Читать дальше →


Поднимаем сложный проект на Django с использованием Docker


Добрый день, коллеги.

Сегодня я расскажу о не совсем простой концепции быстрого (до часа после нескольких тренировок) развёртывания проекта для работы команды, состоящей как минимум из отдельных фронтенд и бэкенд разработчиков.

Исходные данные у нас такие: начинается разработка проекта, в которой планируется «тонкий бэкенд». Т.е. бэк у нас состоит из закешированных страниц (рендерятся любым шаблонизатором), объёмных моделей с сопутствующей логикой (ORM) и REST API, выполняющего роль контроллера. Фактически, View в такой системе редуцировано и вынесено в JS, благо есть разные реакты, ангуляры и прочие вещи, которые позволяют фронтендщикам считать себя «белыми людьми».

Читать дальше →


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



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

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


Отчёты и графики для travis-ci и drone.io


В больших проектах уже довольно давно привык к плюшкам ci: прогону тестов, отчётам и автоматическому деплою. При разработке небольших проектов этого не хватает. 1 и 3 покрывает travis-ci(ну или drone.io), но вот визуализации результата нет никакой.

И сразу придумалось простое решение:
  • прогонять анализаторы на стороне ci;
  • отправлять их себе;
  • парсить результат и красиво отображать.


И это всё вылилось в небольшое приложение — coviolations.io(исходники сервера и приложения), сейчас оно
  • работает с публичными и приватными репозиториями на github;
  • работает с travis-ci, drone.io


Консольный клиент для CIBox сервиса — In CI We Trust

Сайт сервиса довольно функционален и позволяет проводить автоматические
тесты/сборки легко и непринуждённо.

Но он больше подходит для ситуаций когда под рукой нет любимого терминала.

А вот когда мы в своём амплуа, хочеться работать по полной!

Для этого и создан консольный клиент который стирает границы
между CI сервисом и вашей средой обитания созидания.

Читать дальше →


Бета версия CIBox.org — Code Sharing and Continuos Integration Service

Большинство Paste сервисов(pastebin, pastie, github gists) справляются с задачей на ура.

Только вот задача у них довольно таки тривиальная — расшарить тривиальный кусок кода.

А исполнять этот код нужно в голове или копировать/вставить, с условием того что ваша голова или рабочее окружение поддерживают язык на котором расшаренный код написан.

JSFiddle пошёл дальше разрешив исполнять javascript код не в голове а в браузере.

CIBox пошёл ещё дальше разрешив исполнять серверные языки и получать результат в браузере в реальном времени.

На сегодня есть поддержка Ruby, Python и Node.js

Continuous Integration?

Естественно! Код можно исполнять на всех мажорных версиях поддерживаемых языков/фреймворков.

А также можно загружать код из GitHub репозиториев или с помощью rsync

Получается виртуальное окружение с довольно мощным потенциалом. Можно например с мобильного исправить код прил



HowTo: continuous integration Django в Jenkins с помощью Selenium

Хабы: Django

Это шпаргалка раскрывающая раздел «Интеграция Selenium тестов» статьи Настройка Jenkins для django проекта с нуля. А именно как запускать Selenium тесты на удалённом сервере Jenkins у которого нет монитора и форточек.
Читать дальше →



Django Framework / Настройка Jenkins для django проекта с нуля

Всем привет.

Значительное время в нашем проекте использовалась самописная система интеграционного тестирования — чекаут кода по хуку в системе контроля версий, прогонка тестов с поддержкой отчётов по покрытию кода, запись результатов в отдельный html-файл, который был доступен разработчикам через веб. Естественно, потом пришлось делать поддержку локов, чтобы одновременно не запускалось сразу два тестирования и т. п.

В конце концов на ее поддержку стала уходить ощутимая часть рабочего времени, которая давно свела к нулю все преимущества простоты разработки такой системы, и было решено установить нормальный сервер Continuous Integration.

В качестве новой системы был выбран Jenkins, о его установке и настройке для django-проекта и пойдет речь в этой статье. Кто заинтересовался, добро пожаловать под кат.