Я работаю над проектом, который включает в себя несколько команд, разрабатывающих одно и то же приложение с использованием SVN. каждая команда самостоятельно разрабатывает свою часть приложения в отдельном филиале, затем тестирует и развертывает приложение. после успешного развертывания команда будет сравнивать код в своей ветке с кодом в багажнике и обновлять багажник с их изменениями, чтобы другие команды могли также получить их изменения. Кроме того, перед развертыванием приложения команда также сравнивает код в соединительной линии с кодом в своем филиале и обновляет свою ветку с последними изменениями из магистрали, чтобы код, который они будут разворачивать, будет содержать последние изменения из другие команды. Теперь мы хотели бы автоматизировать этот процесс с Jenkins, но нам сложно определить стандартный процесс. например, мы думали о следующем подходе:Непрерывная интеграция с участием нескольких команд, работающих с одним и тем же приложением
- разработчик команды создает новый филиал в SVN, который содержит код из ствола
- он обновляет код с его изменениями и выполняет модульное тестирование
- Если тестирование устройства прошло успешно, он проверяет код в ветке, создает тег и запускает процесс развертывания.
- пакет развертывается в некоторых тестовых средах, на которых выполняется тестирование (дым, функциональность и т. Д.), И в конечном итоге если испытания прошли успешно
проблема с этим подходом заключается в том, что эта команда не включает изменения, внесенные другими командами во время развертывания в различных тестовых средах. поэтому обходным решением может быть объединение последних обновлений с соединительной линии в наш филиал во время процесса развертывания, но это будет означать, что новый объединенный код не будет протестирован во всех тестовых средах.
Мы подумали об использовании Multi-stage continuous integration, но это не сработает, потому что команды не выполняют их развертывание одновременно или в течение определенного периода времени.
У кого-нибудь есть идея по подходу к этому?
Спасибо за ваш ответ. Хотя различные команды работают в разных филиалах, все они объединяют свой код в багажник. Это похоже на многоступенчатую непрерывную интеграцию –
Ну, вы либо переключаетесь на одну ветвь, либо выполняете все тесты во всех ветвях ... –