По: Питер Солимос
Интегрируйте платформу приложений DigitaloCean с GitHub для автоматического развертывания вашего блестящего приложения.
Я представил платформу приложений DigitaloCean в предыдущем посте и описал, как развернуть блестящие приложения из существующих изображений Docker используя панель управления или командную строку.
Этот пост продолжает обсуждение платформы приложений, рассматривая, как интегрировать платформу приложений с помощью GitHub и настроить непрерывную интеграцию и развертывание (CICD).
Предварительные условия
Если вы этого не делали раньше, перейдите в Приложение Платформа Целевая страница и зарегистрируйтесь для учетной записи DigitaloCean. Войдите в свою учетную запись и перейдите на панель панели. В левом ящике нажмите «Приложения».
Для analythium/app-platform-shiny Репозиторий, потому что вам придется дать разрешения на доступ к репо.
Вот что внутри репо:
. ├── .do │ ├── app.yaml │ └── deploy.template.yaml ├── app │ ├── global.R │ ├── server.R │ └── ui.R ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md └── renv.lock
.делать
Папка содержит файл шаблона, который необходим, если вы хотите развернуть шаблон блестящего приложения из кнопки в Readme
файл. Спецификация приложения ( app.yaml
) это было введено ранее, но это в значительной степени упрощено:
name: app-platform-shiny services: - dockerfile_path: Dockerfile github: branch: main deploy_on_push: true repo: analythium/app-platform-shiny name: app-platform-shiny
приложение
Папка содержит Несколько файлов для блестящего приложения Анкет Dockerfile
использует Пакет RENV для обработки зависимостей Указано в renv.lock
файл.
Само приложение, как вы увидите, является относительно простым примером с некоторым слайдером диапазона, зависимостью, которая не требует построения из источника. Он также имеет кнопку загрузки файла — я использую функциональность загрузки для проверки, когда требуется большая загрузка файла. Большая загрузка файлов часто ограничена, Сам блестящий имеет ограничение размера файла 5 МБ Анкет
Интеграция GitHub
Давайте настроим интеграцию GitHub. Перейдите на панель управления DigitaloCean на вашей панели управления. Нажмите «Запустить новое приложение» под элементом приложения «в левой стороне:
Когда вас попросят выбрать источник, нажмите на значок GitHub:
Следуйте подсказкам и установите приложение GitHub для вашей личной учетной записи или организации по вашему выбору. Выберите «Все репозитории» или «выберите только репозитории», как это необходимо. Наконец, нажмите «Сохранить»:
Развернуть из репозитория GitHub
Теперь вернитесь к панели управления приложениями. Выберите репозиторий из раскрывающегося меню, укажите филиал, который вы хотите развернуть. Если вы хотите развернуть как разработку, так и производственную версию одного и того же репозитория, вы можете создать несколько приложений с одним и тем же репо, но использовать разные филиалы.
Оставьте проверку «autodeploy», если вы хотите запустить новые развертывания при изменении кода, затем нажмите «Далее»:
Просмотрите настройки приложения, выведенные из Dockerfile
, то есть порт HTTP и т. Д.:
Введите имя службы, выберите область данных, затем нажмите «Далее:
Последний шаг позволяет определить производительность приложения и соответствующих цен. Здесь я использую наименьший размер в соответствии с «базовым» планом за 5 долларов США в месяц:
Через несколько минут вы должны увидеть зеленые чеки, кроме записей журнала сборки и развертывания. Создание изображения может занять некоторое время, в зависимости от количества зависимостей в вашем приложении:
Следите за URL -адресом приложения с панели управления, чтобы увидеть приложение онлайн, обслуживаемое за https:
Добавить пользовательский домен
Добавление пользовательского домена выполняется через панель управления. Нажмите «Добавить домен»:
Следуйте подсказкам и скопируйте URL -адрес приложения:
Добавьте запись CNAME в настройки DNS на странице поставщиков DNS (домены Google, показанные здесь), укажите ее на свой домен или поддомен:
Вы увидите пользовательский домен, указанный в настройках приложения:
Нажмите на свою новую ссылку домена и проверьте. Возможно, вам придется немного подождать, если ваша запись не распространилась через серверы имен:
Автоматическое развертывание обновлений
Далее мы внесем некоторые изменения в блестящее приложение и увидим приложение волшебным образом обновлять через GIT. Сделайте это в своем поддельном репо. Небольшое изменение, которое я сделал, заключалось в редактировании заголовка приложения. Вот изменение:
Как только вы совершите изменения и подталкиваете к GitHub, он запускает трубопровод веб-потока. Новое развертывание затем перечислено в истории развертывания вашего приложения:
Посетите пользовательский URL и посмотрите новую версию, развернутую:
Не забудьте удалить приложение и запись CNAME, если они вам больше не нужны, чтобы избежать заряда хостинга. Динамическое хостинг приложений не бесплатен на DigitaloCean.
Тестирование перед развертыванием
Одна потенциальная проблема с этой интеграцией GitHub — это не зависит от прохождения тестов перед развертыванием Анкет Если вы хотите проверить свои изменения перед развертыванием, вот шаги, которые нужно следовать:
- продвигать изменения в филиале развития,
- Запустите автоматические тесты для филиала разработки, например, Использование действий GitHub,
- Установите производственный филиал как защищенную ветвь, так что Объединение запросов на вытягивание требует прохождения тестов Анкет
Выводы
Когда мы развертываем существующее изображение Docker, изображение было вытянуто на платформу приложений от Docker Hub. В этом случае неизменное изображение было выдвинуто и вытянуто.
Интеграция GitHub, описанная здесь, требует другого подхода. Он создает изображение Docker после того, как изменения направляются в предварительно определенную ветвь в репозитории GitHub. Изображение построено и хранится в Реестр цифроки -контейнеров Анкет
При таком подходе вы получаете новое развертывание на каждом событии GIT Push. Вы можете обсудить, насколько это автоматизированное развертывание (CD) можно считать непрерывной интеграцией и развертыванием (CICD) без фактической части CI.
Тестирование приложения перед развертыванием требует дополнительных шагов как часть вашего рабочего процесса GIT. Для достижения полного опыта CICD вы можете использовать doctl
Утилита командной строки в GitHub Actions. Оказывается, этот маршрут немного более вовлечен, и есть несколько случаев, которые нужно обратиться. Таким образом, я объясню это в последующем посте.
дальнейшее чтение
- Документация платформы приложений
- Развернуть приложение из монорепо
- Устранение устранения вашего приложения
Оригинал: «https://dev.to/analythium/auto-deploy-shiny-app-changes-to-the-digitalocean-app-platform-47de»