Если вы создаете свой боковой проект или запуск, и хотите избежать слишком много денег на популярных коммерческих решениях, таких как Travic CI (которая стоит $ 69/месяц), вы можете использовать свой собственный в себе Дрон CI На вашем ноутбуке AWS Free Tier или любые другие серверы.
Дрон CI Особенности:
- Многоплатформенная поддержка
- Конфигурация на основе yaml
- Мультипроводы и комплексная структура строительства логической поддержки
- Docker bally
- Бесплатно
- GitHub, Gitlab, поддержка битбукет
Мы запустим Drone CI на одном хосте и используя GitHub, но вы можете использовать мультимашинную конфигурацию или Kubernetes, а также разные поставщики VCS. Найти больше информации здесь Отказ
Получить хост
Для целей этого теста мы используем AWS EC2 Expless Examp, но вы можете использовать все, что вы хотите. Чтобы использовать наш подход, выполните следующие действия:
- Перейти на страницу AWS;
- Добавьте свой ключ SSH PUB в раздел парных пар на странице EC2 (для доступа к вашему экземпляру через SSH);
- Создайте новый экземпляр свободного уровня Ubuntu 18.04 на AWS;
- Разрешить 80 и 443 порта для группы безопасности вашего экземпляра; Если это новая учетная запись, используйте Launch-Wizard-1 или найдите его в описании вашего экземпляра EC2.
Установить Docker
Вам нужно только Docker, чтобы начать использовать Drone. Просто следуйте инструкциям здесь Отказ Убедитесь, что вы установили все правильно, запустив «Docker -V».
root@ip-172-31-23-205:~# docker -v Docker version 18.09.3, build 774a1f4
Создайте приложение OAUTH
Мы используем Github для примеров, но вы также можете запустить его на Gitlab, Bitbucket, Gitea и Gogs. Дополнительная информация здесь Отказ
- Перейти к https://github.com/settings/developers и войдите в свой личный счет, если у вас есть один или настройте учетную запись, если вы этого не сделаете.
- Нажмите «Новое приложение Oauth».
- Заполните форму, согласно примеру ниже.
Вы можете использовать IP своего сервера или назначить ему домен, чтобы правильно заполнить эту форму. Если вы сделаете это, вы можете использовать идентификатор клиента и секрет клиента на следующих шагах.
Установите дрон
Это очень просто, просто используйте следующее:
docker pull drone/drone:1
С последующим:
--volume=/var/run/docker.sock:/var/run/docker.sock \ --volume=/var/lib/drone:/data \ --env=DRONE_GITHUB_SERVER=https://github.com \ --env=DRONE_GITHUB_CLIENT_ID=652d1he1a62b6336bf0 \ --env=DRONE_GITHUB_CLIENT_SECRET=c8990176a4bfywe55ekj8c3cf6d0ffccb8e3a213e \ --env=DRONE_RUNNER_CAPACITY=2 \ --env=DRONE_SERVER_HOST=drone1.pixelpoint.io \ --env=DRONE_SERVER_PROTO=https \ --env=DRONE_TLS_AUTOCERT=true \ --env=DRONE_USER_FILTER=lnikell \ --env=DRONE_USER_CREATE=username:lnikell,admin:true \ --publish=80:80 \ --publish=443:443 \ --restart=always \ --detach=true \ --name=drone \ drone/drone:1
Используя эту конфигурацию, Drone генерирует сертификаты SSL с помощью Encrypt, что затем позволяет нам использовать HTTPS для доступа к Drone UI. Ваша учетная запись пользователя будет иметь привилегии admin (drone_user_create), которые вы должны потерять, чтобы заблокировать доступ к серверу для всех остальных (drone_user_filter). Вы можете найти объяснения других переменных здесь Отказ
Ваш экземпляр теперь должен быть запущен, просто войти и использовать его!
Определите свой трубопровод
После того, как у вас есть экземпляр Drone CI готов, пришло время активировать репозиторий и создать свой трубопровод. Во-первых, найдите репозиторий, используя панель поиска и активируйте его.
На странице «Настройки» вы можете изменить настройки видимости проекта, добавлять секреты (конфиденциальность информации, необходимой для построения шагов) или добавить задание CRON.
Определение шагов сборки и трубопроводы в Дроне — это простой процесс. Просто добавьте в ваш файл репозитория .drone.yml и используйте синтаксис YAML, чтобы описать шаги. Вот простой пример:
kind: pipeline name: default steps: - name: frontend image: node commands: - npm ci - npm run test:unit
Пример выше также доступно здесь: https://github.com/lnikell/hell-world/tree/master Теперь, когда вы нажимаете в репозиторий, он будет вызвать новую сборку на Drone CI.
Но вы можете сделать гораздо больше, в зависимости от сложности вашего проекта. Вот несколько типичных вещей, которые этот процесс можно использовать для:
- Отправка слабых уведомлений
- Развертывание в Кубернеты
- Нажатие изображений в реестр Docker
- Запуск базы данных или другие сервисные экземпляры, необходимые для тестов
- Запуск нескольких трубопроводов и с использованием многоплатформы
Drone — это повседневный помощник, который значительно улучшает стабильность, гибкость и легкость, когда наша команда проходит тесты и развертывает код. Для получения дополнительной информации о Drone CI, посетите https://drone.io/ и проверить нашу историю о Как мы сделали Drone 1.0 лучше Отказ
Оригинал: «https://dev.to/alex_barashkov/getting-started-with-open-source-drone-ci-4pgc»