На моей работе в Videorunrun , мы используем GitHub и Heroku.
У нас есть конвейер с приложением для постановки и приложения Prod, и когда я присоединился к команде несколько месяцев назад, я также предложил включить обзорные приложения.
Я процитирую Официальная документация :
Просмотреть приложения запускают код в любом запросе Github Pull в полном одноразовом приложении Heroku. Каждый из приложений для обзора имеет уникальный URL, которым вы можете поделиться, что делает их отличным способом предложить, проверить и объединять изменения в базу кода.
В основном, это позволяет нам сокращать петли обратной связи, особенно с нашим владельцем продукта, для соображений пользовательского интерфейса/UX для целей тестирования в производственной среде, для PR -обзоров и т. Д.
В целом, это очень удобно для многих различных вариантов использования, и нам просто нравится.
Это убийственная особенность .
Чтобы использовать обзорные приложения для своего потенциала, они должны быть готовы к использованию, как только они будут развернуты.
Если вам нужно вручную настроить зависимости Heroku, определить некоторые Env Vars или запустить сценарий каждый раз, когда вам нужно использовать обзор, бедного ребенка, которого вы потеряли.
Как всегда, автоматизация является ключевой.
К счастью, Обзорные приложения очень легко настроить И документация довольно простая.
Общая конфигурация происходит на пользовательском интерфейсе heroku:
Там вы можете включить просмотр приложений, определить env vars, выбрать шаблон URL и т. Д.
Для расширенного конфигурации вам нужно добавить app.json
файл в корневую папку вашего приложения.
Вот рабочий пример:
# app.json { "environments": { "review": { "formation": { "worker": { "quantity": 1, "size": "free" } }, "addons": [ "heroku-postgresql:hobby-dev", "heroku-redis:hobby-dev" ], "scripts": { "postdeploy": "rails db:schema:load db:seed" } } }
Если ваши сценарии посева не дают вам всех необходимых данных, вы можете скрыться в своей сексуальной базе данных.
Вот что говорит команда Хероку:
Похоже, вам тогда придется работать над этим посевами.
Ты не хочешь? Расскажите, пожалуйста, свои причины в комментариях.
В любом случае, я вас покрыл.
Можно просто использовать его постановную базу данных как для обзоров, так и для промежуточной среды. (Плохое решение ИМХО)
Можно взломать его путь:
# app.json { "environments": { "review": { "buildpacks": [ { "url": "https://github.com/heroku/heroku-buildpack-cli" }, ... ], "scripts": { "postdeploy": "heroku pg:copy {STAGING_APP_NAME}::DATABASE DATABASE --app $HEROKU_APP_NAME --confirm $HEROKU_APP_NAME && sleep 1s && rails db:migrate" } } } }
Он состоит в установке Heroku Cli непосредственно в каждом обзорах приложения. Тогда PostDeploy
Сценарий запускает соответствующую команду Heroku и запускает миграцию. Остерегайтесь, вам нужно сначала установить heroku_api_key. RTFM!
- Официальная документация для обзоров Heroku ( https://devcenter.heroku.com/articles/github-integration-review-apps )
- Официальная документация о
app.json
( https://devcenter.heroku.com/articles/app-json-schema ) - Официальная документация о BuildPacks ( https://devcenter.heroku.com/articles/app-json-schema#buildpacks )
- Heroku buildpack-cli ( https://elements.heroku.com/buildpacks/heroku/heroku-buildpack-cli )
- Официальная документация об обработке базы данных Heroku ( https://devcenter.heroku.com/articles/heroku-postgres-backups#direct-database-to-database-copies )
Оригинал: «https://dev.to/mpressen/heroku-review-apps-setup-configuration-a4a»