Это первая из спонсируемых двухсерийных серий о 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 , которая позволяет ускорить тестирование, выполняя их параллельно.
Напоминаю, что я участвую в обсуждениях ниже. Если у вас есть вопрос или предложение по теме, пожалуйста, оставьте комментарий ниже. Вы также можете связаться со мной в Twitter @reifman или написать мне напрямую.
Кодирование цены
Бесплатный план Codeship позволяет 100 сборок в месяц и пять частных проектов. Неограниченные сборки и проекты начинаются с 49 долларов в месяц. Годовые планы дают вам два месяца бесплатно.
Хорошо, что образовательные проекты получают скидку 50%, а проекты с открытым исходным кодом могут использовать Codeship бесплатно.
Если вы прокрутите вниз до самой нижней части страницы с ценами , вы можете нажать на веселую «невероятно огромную кнопку призыва к действию» Codeship, чтобы зарегистрироваться:
Приятно, что у них хорошее чувство юмора.
Узнать больше о непрерывной доставке Codeship
Когда вы зарегистрируетесь, вы сможете присоединиться к пятидневному ускоренному курсу Codeship по электронной почте, который познакомит вас с основными понятиями непрерывной интеграции и доставки:
Вот пример первого электронного урока:
Вы также можете подписаться на их отличную электронную книгу: Эффективность в рабочих процессах разработки . Не забудьте также следить за блогом Codeship .
Защита вашего кода
Codeship серьезно относится к безопасности. Для каждого проекта, который вы добавляете в Codeship, они создают уникальный ключ SSH, который сам по себе строго зашифрован и расшифрован только незадолго до использования в виртуальной машине сборки. Для каждой сборки они запускают новую и чистую виртуальную машину. Все сделанные вами изменения (включая изменения файловой системы) хранятся на виртуальном диске, который удаляется по завершении сборки (тестирование и развертывание). Ни одна из ваших данных никогда не хранится ни на одном жестком диске на их серверах сборки.
Вся связь между вашим браузером и сайтом Codeship зашифрована с помощью SSL, как и вся связь с их очередью openredis. Все взаимодействие со сборочными виртуальными машинами осуществляется через SSH.
Codeship никогда не прочитает ваш код, если вы явно не запросили его. Это может произойти в случае запроса поддержки или если вы хотите что-то отладить их инженерами. Ни в каком другом случае они не будут смотреть на то, что принадлежит вам — ваш код. Только работники Codeship, работающие полный рабочий день, когда-либо участвуют в этой деятельности по поддержке — она никогда не передается на аутсорсинг
Вы можете прочитать больше об их процессах безопасности на их сайте.
Начало работы с Codeship
Регистрация и Аутентификация
Вы можете зарегистрироваться в Codeship по электронной почте или через GitHub или Bitbucket через OAuth:
Если вы используете GitHub или Bitbucket, вам будет предложено подтвердить доступ к вашей учетной записи:
После авторизации вы вернетесь на страницу панели инструментов и проектов Codeship. Пришло время добавить наш первый проект:
Создайте свой первый проект
Чтобы запустить ваши автоматизированные тесты, Codeship необходимо проверить ваш код у поставщика исходного кода. В настоящее время они поддерживают GitHub и Bitbucket, а другие планируется.
В любое время вы можете отозвать разрешение в настройках поставщика исходного кода и удалить ключи развертывания Codeship и служебные хуки со страниц конфигурации ваших проектов.
Идея, лежащая в основе Codeship, заключается в том, чтобы брать код из коммитов ваших разработчиков в менеджер исходного кода и запускать автоматизированные тесты в безопасном облаке Codeship. Если ваши тесты пройдены, Codeship продолжит выполнение инструкций по развертыванию. Если они терпят неудачу, уведомления отправляются вашей команде по электронной почте или через коммуникационные сервисы, такие как Slack и HipChat.
Подключите ваш менеджер исходного кода
Для этого урока я разработал кодовую базу Yii2 Framework для PHP, которая включает в себя различные автоматизированные тесты. Codeship поддерживает различные языки программирования, например Ruby on Rails, Node.js, PHP, Java, Go, Dart и т. Д.
Codeship загружает мои репозитории из GitHub, и я просто выбираю Yii2:
Затем он попросит меня выбрать технологию моей платформы и настроить тестовые команды.
Вы можете настроить Codeship на очень глубоком уровне, от простых потребностей до сложных процессов сборки на уровне предприятия:
В демонстрационных целях я добавлю тесты phpunit для базовой функциональности Yii2:
Другими словами, всякий раз, когда я загружаю обновления в мой репозиторий GitHub (или Bitbucket), Codeship будет запускать для меня тесты phpunit.
Вот как выглядит страница проекта Codeship после ее настройки:
Затем я запусту сборку, отправив небольшое обновление в мой репозиторий. Смотрите, как Codeship начинает строить мой код …
… а затем приступает к запуску моих модульных тестов:
Когда это будет сделано, вы сможете увидеть полный отчет обо всех этапах и о том, пройдены ли тесты или нет.
Codeship ведет полный журнал сборки для каждого проекта:
Трубопроводы развертывания
Вы можете выбрать, что Codeship сделает с вашим кодом после прохождения тестов. Например, возможно, вы обновляете свой промежуточный сервер для дальнейших тестов, или, возможно, вы раскатываете все на своих производственных серверах. Codeship позволяет вам определять сложные конвейеры для тестирования и развертывания.
Вот подробный вид меню настроек проекта:
Ниже приведены общие настройки UUID вашего проекта и открытый ключ SSH для автоматического развертывания:
Уведомления
Вы можете настроить уведомления для действий Codeship, например, ошибок сборки. Они могут проходить через API или различные сторонние сервисы, например Slack, Campfire, HipChat и т. Д .:
Существует также бесплатное расширение Chrome для уведомлений о сборке Codeship под названием Shipscope .
И вы можете добавить значок Codeship Badge в ваш файл readme репозитория, чтобы показать стабильность конкретных коммитов, чтобы ваш GitHub (или Bitbucket) и посетители веб-сайта могли в режиме реального времени видеть, прошел ли конкретный выпуск свои автоматические тесты.
Codeship позволяет легко добавить вашу команду в ваши проекты.
Настройте ваши развертывания
Codeship обеспечивает готовую интеграцию развертывания со многими популярными хостинговыми решениями, включая Google AppEngine, Amazon Web Services Code Deploy, Heroku, Engine Yard, Nodejitsu и многие другие.
Я собираюсь углубиться в более подробную информацию о процессе развертывания в следующем эпизоде. На данный момент вы можете просмотреть учебники Codeship для различных платформ.
Они имеют широкий спектр документации для вариантов непрерывного развертывания :
Ниже приведено краткое руководство по развертыванию приложения Ruby on Rails из GitHub в Heroku. Ниже приведено видео. Codeship предлагает несколько видеогидов на своем канале Vimeo .
Что дальше?
В следующем уроке я подробнее расскажу о развертывании с Codeship и его новой функцией ParallelCI , которая позволяет ускорить тестирование, выполняя их параллельно.
Пожалуйста, не стесняйтесь оставлять свои вопросы и комментарии ниже. Вы также можете связаться со мной в Twitter @reifman или написать мне напрямую. Вы также можете просмотреть мою страницу инструктора Tuts +, чтобы увидеть другие уроки, которые я написал.