Drone – это платформа непрерывной интеграции и развертывания, написанная на Go. Эту платформу можно интегрировать со многими популярными сервисами контроля версий, благодаря чему вы можете использовать Drone для автоматической сборки, тестирования и развертывания программного обеспечения после каждого обновления кода.
В этом мануале показано, как создать форк репозитория GitHub и использовать Drone для сборки и тестирования проекта.
Требования
Все необходимые инструкции по настройке среды вы найдете в этих руководствах:
- Установка и использование Docker в Ubuntu 16.04: установите Docker (раздел 1 и 2).
- Установка Docker Compose в Ubuntu 16.04: установите Docker Compose (раздел 1).
- Установка Nginx в Ubuntu 16.04: установите веб-сервер Nginx (раздел 1 и 2).
- Создание сертификата Let’s Encrypt для Nginx в Ubuntu 16.04: защитите трафик с помощью сертификата.
- Установка и настройка Drone в Ubuntu 16.04: установите и настройте Drone, а затем свяжите платформу с аккаунтом GitHub.
Настроив среду, откройте Drone. Приветственная страница панели управления выглядит так:
Welcome to Drone
Это значит, что вы открыли панель, но пока что в ней нет доступных репозиториев.
1: Форк репозитория
Сначала нужно клонировать GitHub-репозиторий с кодом. Drone можно комбинировать со многими различными репозиториями управления версиями, но в этом руководстве платформа Drone связана с учетной записью GitHub, поэтому репозиторий будет клонирован с GitHub. Войдите в аккаунт GitHub и найдите репозиторий, например:
https://github.com/do-community/hello_hapi
Нажмите Fork, чтобы скопировать репозиторий в ваш аккаунт. Если у вас есть доступ к нескольким организациям, GitHub может предложить выбрать, куда клонировать репозиторий. Выберите стандартный аккаунт. Через пару секунд у вас появится копия репозитория hello_hapi.
2: Файл .drone.yml
Drone ищет в репозитоии файл .drone.yml, чтобы понять, как работать с кодом. Этот файл включен в скопированный репозиторий. Вот что он содержит:
pipeline:
build:
image: node:latest
commands: npm install
test:
image: node:latest
commands: npm run test
Этот файл YAML определяет настройки конвейера. Конвейер – это процесс непрерывной интеграции, который последовательно запускает различные этапы. В данном случае конвейер включает два этапа – build и test.
Этап build использует Docker-образ node:latestдля запуска npm install. Это загрузит и установит все библиотеки, требуемые для тестирования.
Этап test использует тот же образ Docker для запуска всех элементов тестирования. Обычно build и test составляют один этап, но в данном руководстве они делятся на два этапа для простоты.
Все этапы конвейера выполняются в одном рабочем пространстве, потому файлы, созданные на первом этапе, будут доступны на втором этапе. Drone предлагает много разных опций, которые можно использовать в .drone.yml. больше об этом – в документации Drone. Вот некоторые из этих функций:
- Матричная сборка позволяет собирать и тестировать приложение в нескольких средах выполнения или версиях библиотек, чтобы проверить его совместимость.
- Уведомления по электронной почте и обмен сообщениями.
- Публикация собранных программ в npm и реестрах.
3: Запуск непрерывной интеграции
Войдите в Drone, если вы еще этого не сделали. Пустая боковая панель предлагает активировать репозитории для начала работы.
Activate your repositories to get started
Кликните по ссылке Activate, чтобы просмотреть список репозиториев GitHub.
Найдите клонированный репозиторий hello_hapi и кликните по серому переключателю справа. Он должен стать зеленым. Теперь Drone использует API интерфейс GitHub для получения обновлений кода.
Вернитесь на домашнюю страницу панели управления, для этого кликните по логотипу Drone.
Теперь в панели отображается новый репозиторий. Поскольку еще не было запущено ни одной сборки, вы не найдете информации о состоянии.
Кликните по имени репозитория hello_hapi, чтобы получить доступ к подробной информации о нем. Здесь вы найдете разные вкладки, в которых можно обновлять настройки и добавлять конфиденциальные данные (токены и пароли). По умолчанию открывается вкладка Builds, пока что в ней нет никаких сборок.
Теперь нужно запустить первую сборку.
Оставьте страницу Drone открытой. Перейдите в репозиторий hello_hapi в новой вкладке или окне. Добавьте в проект новый файл, чтобы запустить сборку. Нажмите Create new file.
Выберите любое имя (например, trigger-file) и введите содержимое:
This is a test.
Перейдите в конец страницы и нажмите Commit new file.
После этого коммита GitHub сообщит платформе Drone об изменениях, которые нужно установить. Drone запустит новую сборку. Вернитесь в панель управления Drone. Интерфейс быстро обновится. Символ вращающейся стрелки сообщит о том, что выполняется сборка.
4: Результаты непрерывной интеграции и развертывания
Нажмите на сборку, чтобы просмотреть подробности. Если сборка все еще продолжается, вы сможете наблюдать за каждым этапом в реальном времени.
Кликнув по стрелочкам, вы сможете получить более подробную информацию.
Кнопка Follow покажет, как получился такой результат.
Имейте в виду: в файле .drone.yml не был определен этап clone. Обычно он есть в сборке и предоставляет информацию о том, как платформа Drone извлекает исходный код перед сборкой.
Заключение
Теперь вы умеете клонировать проекты, составлять файл .drone.yml и запускать сборку и тестирование Drone.
Больше информации о настройке Drone, сборке, тестировании и развертывании проектов вы найдете в документации Drone.