Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Deployment
Code

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

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called Continuous Integration With Codeship.
Codeship: Deployment Pipelines and ParallelCI for Faster Results
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Russian (Pусский) translation by Masha Kolesnikova (you can also view the original English article)

Это первая из двух выпусков серии 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 From Your Developers to Your Customers

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

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

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

Codeship Arto Vuori Usetrace Testimonial

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

Цены Codeship

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

Codeship Pricing

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

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

Codeship Sign Up with Outrageously Huge Action Button

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

Узнайте больше о непрерывной доставке кода

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

Codeship Continuous Delivery Email Course

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

Codeship Continuous Delivery Email Course Part One

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

Защита кода

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

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

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

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

Начало работы с Codeship

Регистрация и аутентификация

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

Codeship Sign Up

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

Codeship Authorize with Github

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

Codeship Dashboard and Project Listing

Создайте свой первый проект

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

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

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

Codeship Example Codeship pipeline

Подключение менеджера исходного кода

Codeship Connect Your Source Code Manager

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

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

Codeship Choose A Repository

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


Codeship Select Your Technology

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

Codeship Setup Your Build Commands

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

Codeship Adding My Unit Testing

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

Codeship Treehouse Customer Testimonial

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

Codeship Push Your Repository to Trigger Your First Build

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

Codeship Build in progress

... и затем продолжает выполнять мои модульные тесты:

Codeship Automated tests in progress

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

Codeship Build complete and successful

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

Codeship Build Log

Пайплайны развертывания

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

Codeship Example of Deployment Pipelines

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

Codeship Project Settings Menu

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

Codeship General Project Settings

Уведомления

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

Codeship Collaborators for Notifications

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

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

Codeship Add a Build Status Badge to Your Repository

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

Codeship Collaborate with your developers

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

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

Codeship Configure Your Deployments

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

У них есть обширная документация для различных вариантов непрерывного развертывания:

Codeship Continuous Deployment Documentation

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


Что дальше?

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

Codeship Customer testimonial preview of ParallelCI - Bannerman

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

Ссылки по теме

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.