Как управлять двумя этапами в конвейере Heroku без интеграции с GitHub

У меня есть приложение под названием my-app в героку.

Я превратил его в конвейер с двумя этапами (постановка и прод). Я не хочу использовать интеграцию с GitHub.

my-app сейчас в производстве.

Я использую GitLab (который бесплатный), и я разветвляюсь my-app репо в новую ветку под названием feature-a,

Я хочу добавить этот форк к стадии подготовки моего конвейера. Я хочу иметь возможность протестировать код на этом этапе, прежде чем продвигаться в производство.

Когда я добавляю в конвейер приложение из форка (или слияния), интерфейс командной строки Heroku сообщает мне, что приложение уже находится в конвейере, что отчасти верно, поскольку одна версия уже находится в производстве.

Мои вопросы:

  • Как я могу добавить к стадии подготовки my-app конвейер другой версии того же приложения?
  • Могут ли стадии иметь разные переменные окружения (например, у staging будут ключи и идентификаторы dev, а у продукции будут prod ключи и идентификаторы)?

2 ответа

Как добавить на этапе подготовки конвейера моего приложения другую версию того же приложения?

Если вы хотите добавить ветку того же приложения в свой конвейер, вы можете вручную создать новое приложение, добавить его в свой конвейер и затем развернуть feature-a перейдите в это приложение для сравнения.

Могут ли стадии иметь разные переменные окружения (например, у staging будут ключи и идентификаторы dev, а у продукции будут prod keys & id)?

Переменные среды зависят от приложения, поэтому вы можете указывать разные ключи для приложений независимо от того, в какую конвейерную линию они входят.

Я искал точно то же, что вы просили, когда в результатах поиска Google я увидел ссылку на тему "Управление несколькими средами для приложения" в документации Heroku.

И для того, что я поняла, вы хотите один и тот же репозиторий, только в одном приложении heroku, но каждый выпуск на отдельной стадии.

Ну, документация не подходит для такого рода управления, что мы можем понять, что это невозможно.

Но он подходит к другому виду управления, когда у вас может быть много веток в одном репозитории, и каждая ветка связана с отдельным приложением (я думаю, что это реальная проблема).

Прочитайте документацию по адресу: https://devcenter.heroku.com/articles/multiple-environments

Такой подход имеет больше смысла с корпоративной точки зрения, потому что в компании с высоким уровнем зрелости в разработке программного обеспечения вы не будете вносить какие-либо изменения непосредственно в ветку Master (любая ошибка может стать огромной ошибкой),

Итак, что вы можете сделать, чтобы решить эту проблему, если вы не используете интеграцию с GitHub: вы создаете конкретное приложение для вашей ветви разработки, приложение для вашей промежуточной стадии и еще одно для вашей производственной (основной) ветви.

Вы развертываете его отдельно, а после тестов вы объединяете свой код с другой веткой и внедряете его.

Надеюсь, я помог тебе!

Другие вопросы по тегам