Меня долго не покидала идея визуализировать статусы билдов каким-нибудь простым и эффективным способом. Под катом я расскажу, как в моем офисе появился настоящий дорожный светофор, как он работает и зачем он вообще нужен.Читать полностью »
Меня долго не покидала идея визуализировать статусы билдов каким-нибудь простым и эффективным способом. Под катом я расскажу, как в моем офисе появился настоящий дорожный светофор, как он работает и зачем он вообще нужен.Читать полностью »
При разработке и тестировании какого-либо продукта появляется много рутинной работы. Чтобы избежать ошибок, связанных с человеческим фактором, мы используем AIDA.
AIDA (англ. Automated Interactive Deploy Assistant) — это учётная запись, значительно облегчающая работу с Git, TeamCity и JIRA.
Сегодня речь пойдет о том, как с её помощью нам удалось автоматизировать многие рабочие процессы.
В первую очередь мы вспомним об используемой в Badoo системе контроля версий, далее расскажем о том, как было автоматизировано создание веток релиза и осуществлено автоматическое слияние веток в Git, поговорим о существенной помощи AIDA в работе с JIRA (контроль и изменение статуса задач, заполнение полей) и ТeamCity (непрерывная интеграция и развёртывание на тестовое окружение).
Читать полностью »
В этой статье мы решили немного рассказать о средствах continuous integration (CI), которые используем в компании Дневник.ру, и поделиться небольшими наработками в этом направлении. Большая часть материала может показаться банальной рекламой выбранного движка CI или попыткой вызвать holy war (причем не один), но подобного не было в целях. Статья также не является путеводителем или описанием каких-либо фитч и может быть расценена как статья от кэпа – главное, чтобы она была интересна и вызвала дискуссию.
Наверное, многие используют такой замечательный опен-сорсный проект CruiseControl.net для реализации практики разработки ПО, называемой «непрерывная интеграция». О том, как его настроить, есть много статей, в том числе и на хабре: тыц, тыц и тыц. После сборки «особых» билдов часто стоит задача уведомления получателей об этом событии, для чего чаще всего используется инструмент CCTray или встроенный Task “email” – я же хочу поделиться туториолом о том, как сделать собственный плагин task на примере посылке сообщения по Skype.
Читать полностью »
Как ранее уже писалось
Данную статью можно рассматривать как опыт внедрения capistrano, после прочтения статьи. Статья-дополнения, скажем так.
Статью разделю на 3 части, это первая.
В первой части опишу теоретические сложности, с которыми я столкнулся по мере работы с капистрано.
Во второй- установка и настройка базового функционала.
Третья- финальная, допиливание=)
Читать полностью »
Конец 2012 года прошел в суматохе, и каким-то образом я упустил из внимания две важные новости: в декабре вышел GitLab 4.0, а на середину ноября пришелся релиз GitLab Continuous Integration Server.
GitLab — это замечательное FOSS решение для хостинга git-репозиториев внутри закрытой инфраструктуры. Функционал во многом аналогичен GitHub, в частности доступны базовые возможности администрирования и разделения полномочий между пользователями, issue трекер, вики, code review и мердж реквесты (аналог пулл-реквестов на GitHub). И внеочередной плюс теперь, как по мне — это интеграция с GitLab CIS.
GitLab CIS — если GitLab послужит Вам заменой GitHub, то GitLab CIS призван стать заменой Travis CI. Набор фич соответствующий: запуск по git push, отдельные билды под бранч, интеграция с любыми git-репозиториями и бейджик со статусом текущего билда.
Причины для поиска и использования self-hosted решений для содержания кода у всех могут быть разными, но в большинстве своем они вполне очевидны и обусловлены поиском безопасности и прозрачности, чего невозможно добиться при использовании SaaS.
Что примечательно, работу ведут и курируют скромные украинские парни Дмитрий Запорожец и Валерий Сизов.
Читать полностью »
При большом количестве серверов и виртуальных машин и еще большем количестве кода в постоянном деплое, неизбежно возникают проблемы администрирования всего этого огромного хозяйства. Существует множество инструментов, позволяющих организовать continuous integration. В нашем списке точно уже есть GIT, Jenkins, Chef, Proxmox, Graylog2. Сегодня мы расскажем еще об одном удобном инструменте для автоматизации рутинных задач — rundeck. Эта статья — не подробный мануал с примерами конфигов, а скорее размышления на тему. Читать полностью »
В чем заключается основная задача системного администратора? Если выразить ее очень кратко, одним предложением? Еще лучше, одним словом?
Автоматизация.
Автоматизация бывает разных видов — управление пользователями и политиками (Active Directory), управление конфигурацией (Puppet) итд. Для автоматизации каких-то регулярных действий как в Windows, так и в Linux/Unix есть встроенные планировщики задач. Наверняка каждый администратор использует их ежедневно. Это же так удобно — написал скрипт, закинул в cron и забыл о нем.
Проблема в том, что забыть не получается.
Сайт сервиса довольно функционален и позволяет проводить автоматические
тесты/сборки легко и непринуждённо.
Но он больше подходит для ситуаций когда под рукой нет любимого терминала.
А вот когда мы в своём амплуа, хочеться работать по полной!
Для этого и создан консольный клиент который стирает границы
между CI сервисом и вашей средой обитания созидания.
Большинство Paste сервисов(pastebin, pastie, github gists) справляются с задачей на ура.
Только вот задача у них довольно таки тривиальная — расшарить тривиальный кусок кода.
А исполнять этот код нужно в голове или копировать/вставить, с условием того что ваша голова или рабочее окружение поддерживают язык на котором расшаренный код написан.
JSFiddle пошёл дальше разрешив исполнять javascript код не в голове а в браузере.
CIBox пошёл ещё дальше разрешив исполнять серверные языки и получать результат в браузере в реальном времени.
На сегодня есть поддержка Ruby, Python и Node.js
Continuous Integration?
Естественно! Код можно исполнять на всех мажорных версиях поддерживаемых языков/фреймворков.
А также можно загружать код из GitHub репозиториев или с помощью rsync
Получается виртуальное окружение с довольно мощным потенциалом. Можно например с мобильного исправить код приложения, протестировать «до дыр» и загрузить на production сервер.