Статьи

Codeship: непрерывная интеграция и простота доставки

Это первая из спонсируемых двухсерийных серий о Codeship , безопасной, облачной сервисе непрерывной интеграции и доставки.

Codeship — это служба непрерывной доставки, ориентированная на скорость, надежность и простоту. Вы настраиваете Codeship для создания и развертывания своего приложения из GitHub на выбранную промежуточную или производственную платформу.

Сервис предлагает множество мощных опций настройки. В настоящее время Codeship интегрирован с популярными менеджерами исходного кода GitHub и Bitbucket. Он поддерживает различные языки программирования (Ruby on Rails, Node.js, PHP, Java, Go, Dart и т. Д.) И платформы развертывания (Amazon Web Services, Heroku, Google App Engine и т. Д.).

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

По сути, когда вы отправляете свой код в GitHub (или Bitbucket), Codeship перестраивает ваше приложение на своих защищенных серверах и запускает ваши автоматические тесты. Если тесты не пройдены, он уведомляет вашу команду разработчиков по электронной почте или через интеграцию с популярными сервисами, такими как Slack, HipChat и т. Д. Если тесты пройдены, Codeship следует вашему определенному конвейеру для перемещения кода на промежуточные или производственные серверы, как указано.

Совместимость с вашими разработчиками для ваших клиентов

Работа с такой службой, как Codeship, может минимизировать последствия ошибок, ускорить их обнаружение и сделать вашу команду более удобной и опытной в выпуске регулярных пошаговых улучшений для вашей платформы — надеюсь, улучшая вашу отзывчивость к вашим клиентам и вашему рынку.

Codeship помогает вашей команде писать и развертывать свой код с большей уверенностью. Блог Codeship поможет вам быстро освоить лучшие практики. Команда также опубликовала статью об основах непрерывной интеграции, которую вы также можете прочитать на их сайте.

В этом уроке я расскажу вам о продукте Codeship и подробно расскажу, как начать работу. В следующем выпуске я подробно расскажу о возможностях развертывания Codeship и их недавно выпущенной функции ParallelCI , которая позволяет ускорить тестирование, выполняя их параллельно.

Codeship Arto Vuori Отзыв о Usetrace

Напоминаю, что я участвую в обсуждениях ниже. Если у вас есть вопрос или предложение по теме, пожалуйста, оставьте комментарий ниже. Вы также можете связаться со мной в Twitter @reifman или написать мне напрямую.

Бесплатный план Codeship позволяет 100 сборок в месяц и пять частных проектов. Неограниченные сборки и проекты начинаются с 49 долларов в месяц. Годовые планы дают вам два месяца бесплатно.

Кодирование цены

Хорошо, что образовательные проекты получают скидку 50%, а проекты с открытым исходным кодом могут использовать Codeship бесплатно.

Если вы прокрутите вниз до самой нижней части страницы с ценами , вы можете нажать на веселую «невероятно огромную кнопку призыва к действию» Codeship, чтобы зарегистрироваться:

Регистрация Codeship с невероятно огромной кнопкой действия

Приятно, что у них хорошее чувство юмора.

Когда вы зарегистрируетесь, вы сможете присоединиться к пятидневному ускоренному курсу Codeship по электронной почте, который познакомит вас с основными понятиями непрерывной интеграции и доставки:

Codeship Непрерывная доставка Электронная почта Курс

Вот пример первого электронного урока:

Codeship Непрерывная доставка по электронной почте Часть первая

Вы также можете подписаться на их отличную электронную книгу: Эффективность в рабочих процессах разработки . Не забудьте также следить за блогом Codeship .

Codeship серьезно относится к безопасности. Для каждого проекта, который вы добавляете в Codeship, они создают уникальный ключ SSH, который сам по себе строго зашифрован и расшифрован только незадолго до использования в виртуальной машине сборки. Для каждой сборки они запускают новую и чистую виртуальную машину. Все сделанные вами изменения (включая изменения файловой системы) хранятся на виртуальном диске, который удаляется по завершении сборки (тестирование и развертывание). Ни одна из ваших данных никогда не хранится ни на одном жестком диске на их серверах сборки.

Вся связь между вашим браузером и сайтом Codeship зашифрована с помощью SSL, как и вся связь с их очередью openredis. Все взаимодействие со сборочными виртуальными машинами осуществляется через SSH.

Codeship никогда не прочитает ваш код, если вы явно не запросили его. Это может произойти в случае запроса поддержки или если вы хотите что-то отладить их инженерами. Ни в каком другом случае они не будут смотреть на то, что принадлежит вам — ваш код. Только работники Codeship, работающие полный рабочий день, когда-либо участвуют в этой деятельности по поддержке — она ​​никогда не передается на аутсорсинг

Вы можете прочитать больше об их процессах безопасности на их сайте.

Вы можете зарегистрироваться в Codeship по электронной почте или через GitHub или Bitbucket через OAuth:

Codeship Зарегистрироваться

Если вы используете GitHub или Bitbucket, вам будет предложено подтвердить доступ к вашей учетной записи:

Codeship Авторизуйтесь с Github

После авторизации вы вернетесь на страницу панели инструментов и проектов Codeship. Пришло время добавить наш первый проект:

Codeship Dashboard и список проектов

Чтобы запустить ваши автоматизированные тесты, Codeship необходимо проверить ваш код у поставщика исходного кода. В настоящее время они поддерживают GitHub и Bitbucket, а другие планируется.

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

Идея, лежащая в основе Codeship, заключается в том, чтобы брать код из коммитов ваших разработчиков в менеджер исходного кода и запускать автоматизированные тесты в безопасном облаке Codeship. Если ваши тесты пройдены, Codeship продолжит выполнение инструкций по развертыванию. Если они терпят неудачу, уведомления отправляются вашей команде по электронной почте или через коммуникационные сервисы, такие как Slack и HipChat.

Пример кодекса
Codeship Connect ваш менеджер исходного кода

Для этого урока я разработал кодовую базу Yii2 Framework для PHP, которая включает в себя различные автоматизированные тесты. Codeship поддерживает различные языки программирования, например Ruby on Rails, Node.js, PHP, Java, Go, Dart и т. Д.

Codeship загружает мои репозитории из GitHub, и я просто выбираю Yii2:

Codeship Выберите репозиторий

Затем он попросит меня выбрать технологию моей платформы и настроить тестовые команды.

Codeship Выберите свою технологию

Вы можете настроить Codeship на очень глубоком уровне, от простых потребностей до сложных процессов сборки на уровне предприятия:

Codeship Настройте свои команды сборки

В демонстрационных целях я добавлю тесты phpunit для базовой функциональности Yii2:

Codeship Добавление моего модульного тестирования

Другими словами, всякий раз, когда я загружаю обновления в мой репозиторий GitHub (или Bitbucket), Codeship будет запускать для меня тесты phpunit.

Codeship Treehouse Отзыв клиента

Вот как выглядит страница проекта Codeship после ее настройки:

Codeship Push Your Repository, чтобы запустить вашу первую сборку

Затем я запусту сборку, отправив небольшое обновление в мой репозиторий. Смотрите, как Codeship начинает строить мой код …

Codeship Построить

… а затем приступает к запуску моих модульных тестов:

Codeship Автоматизированные тесты в процессе

Когда это будет сделано, вы сможете увидеть полный отчет обо всех этапах и о том, пройдены ли тесты или нет.

Codeship Build завершено и успешно

Codeship ведет полный журнал сборки для каждого проекта:

Codeship Build Log

Вы можете выбрать, что Codeship сделает с вашим кодом после прохождения тестов. Например, возможно, вы обновляете свой промежуточный сервер для дальнейших тестов, или, возможно, вы раскатываете все на своих производственных серверах. Codeship позволяет вам определять сложные конвейеры для тестирования и развертывания.

Пример кода развертывания конвейеров

Вот подробный вид меню настроек проекта:

Меню настроек Codeship Project

Ниже приведены общие настройки UUID вашего проекта и открытый ключ SSH для автоматического развертывания:

Общие настройки проекта Codeship

Вы можете настроить уведомления для действий Codeship, например, ошибок сборки. Они могут проходить через API или различные сторонние сервисы, например Slack, Campfire, HipChat и т. Д .:

Codeship Collaborators для Уведомлений

Существует также бесплатное расширение Chrome для уведомлений о сборке Codeship под названием Shipscope .

И вы можете добавить значок Codeship Badge в ваш файл readme репозитория, чтобы показать стабильность конкретных коммитов, чтобы ваш GitHub (или Bitbucket) и посетители веб-сайта могли в режиме реального времени видеть, прошел ли конкретный выпуск свои автоматические тесты.

Codeship Добавьте значок статуса сборки в свой репозиторий

Codeship позволяет легко добавить вашу команду в ваши проекты.

Сотрудничество Сотрудничество с вашими разработчиками

Codeship обеспечивает готовую интеграцию развертывания со многими популярными хостинговыми решениями, включая Google AppEngine, Amazon Web Services Code Deploy, Heroku, Engine Yard, Nodejitsu и многие другие.

Codeship Настройте ваши развертывания

Я собираюсь углубиться в более подробную информацию о процессе развертывания в следующем эпизоде. На данный момент вы можете просмотреть учебники Codeship для различных платформ.

Они имеют широкий спектр документации для вариантов непрерывного развертывания :

Документация по непрерывному развертыванию Codeship

Ниже приведено краткое руководство по развертыванию приложения Ruby on Rails из GitHub в Heroku. Ниже приведено видео. Codeship предлагает несколько видеогидов на своем канале Vimeo .

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

Предварительный просмотр ParallelCI от клиента Codeship - Bannerman

Пожалуйста, не стесняйтесь оставлять свои вопросы и комментарии ниже. Вы также можете связаться со мной в Twitter @reifman или написать мне напрямую. Вы также можете просмотреть мою страницу инструктора Tuts +, чтобы увидеть другие уроки, которые я написал.