Существует ли решение, чтобы на VPS через веб можно было смотреть в работе разные ветки Git?
Сейчас поясню:
Допустим от develop есть две ветки feature-1 и feature-2 и они реализуют две разные фичи для веб-проекта.
Есть ли какие-то удобные решения для того, чтобы наглядно продемонстрировать эти фичи в работе на сайте?
Ну, то есть, чтобы как-то можно было между ними переключаться, или, например, имя поддомена совпадало с именем бранча?
Не уверен что понятно доношу идею, но, в общем, чтобы по разным урлам были доступны разные рабочие директории для каждой ветки, и чтобы доступ к ним был автоматизированный?
Нет чего-то автоматического, но это нетрудно сделать: поднять несколько виртуальных сайтов, и в каждый деплоить из определенной ветки (например с помощью Github Actions).
Роми, нет нет нет и ещё раз нет. Ну как же он это сделает то без поднятия проектов. А данные он откуда возьмёт?) а картинки загруженные откуда принесёт?
Константин Б., ну как же нет? каждая ветка деплоится и поднимается на отдельном порту, создаётся (в самом тупом варианте) json файлик, в который регистрируется соответствие ветка => порт, при выключении (удалении ветки) graceful shutdown убирает себя из этой мапы. Дальше простейший сервер, очень желательно неблокирующий (пусть будет на го в 20 строчек) принимает запросы, ищет в них признак (это может быть поддомен, кусок урла, хэдер, что угодно), идёт в эту мапу, находит там поднятый инстанс приложения (вернее, его порт) и проксирует трафик туда. Делов на день работы. А если веток ограниченное (известное) количество, то всё ещё проще, автоматические регистрации и де-регистрации не нужны, в проксе есть мапа "имя ветки" => "порт"
Roman Kitaev, ну так, а разве это не поднятие проектов?) автор хочет чтобы оно раз и открылось из ветки. Но только много нюансов есть, от базы, до того что например на сайте не все в конченом виде и тогда придётся уже разворачивать инстанс каждой ветки. В ручную это будет или же скриптом другой вопрос. Но все это нужно настраивать и писать однозначно
Можно юзать jenkins, teamcity или что-то ещё