Как управлять двумя этапами в конвейере 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: вы создаете конкретное приложение для вашей ветви разработки, приложение для вашей промежуточной стадии и еще одно для вашей производственной (основной) ветви.
Вы развертываете его отдельно, а после тестов вы объединяете свой код с другой веткой и внедряете его.
Надеюсь, я помог тебе!