Слишком мало инфы для ответа на вопрос.
Предположительно схема может быть такая :
Юзать Gitlab CI ( для примера)
Есть сценарии при котором нужен тест ( например пуш в ветку)
Так пусть при пуше поднимается контейнер с необходимой веткой ( gitlab ci это может делать) , далее тесты и затем удаление по тригеру или по времени - как нравится.
Проблемы могут быть на этапе общих внешних ресурсов или портов - про это ничего не сказано.
Ну или можно юзать ansiblе, поднимать например демо виртуалку - например ансибл может создавать виртуалки на vmware , на ней поднимать контейнер, далее виртуалку гасить по какому то тригеру или вначале следующей гитлаб джобы.