Как автоматизировать или упростить мультиплатформенную сборку / тестирование перед фиксацией?

StackOverflow https://stackoverflow.com/questions/325743

Вопрос

Наше программное обеспечение построено на платформах Linux и Windows. В зависимости от предпочтений разработчика, вклад разрабатывается и тестируется на любой платформе, а затем передается в наш репозиторий Subversion. Затем выясняется, что вклад не опирается на другую платформу, и необходимо внести исправление. Исправление на другой платформе может снова сломать сборку на исходной платформе и т. Д.

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

Есть предложения?

Это было полезно?

Решение

Матею Годлевски сделал хорошее предложение на CruiseControl wiki

Если вы объедините его предложение с элементом veto , я думаю, вы должен быть установлен.

Другие советы

Teamcity обрабатывает предварительно протестированные коммиты. Возможно, вы сможете что-то сделать с помощью новых функций цепочки сборки в 4.0 ( http://www.jetbrains.com/teamcity/features/newfeatures.html ). Агенты являются кроссплатформенными и могут быть настроены для запуска только определенных битов сборки, поэтому могут быть настроены для запуска только поднабора тестов.

Обратите внимание, что на самом деле я этого не делал:)

Может быть проще иметь две ветви: одну, в которой люди регистрируются, и другую, в которую они объединяют свои изменения после прохождения непрерывной интеграции.

Мы использовали настраиваемую сборочную и тестовую установку, которая могла удаленно развертываться на нескольких ОС (и на нескольких продуктах базы данных на нескольких ОС). Это было сделано как ночная сборка с правилом, что вы исправляете ошибки на следующее утро.

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

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

Дуглас Лидер предложил «интеграцию» филиал - хорошо, что есть возможность автоматизировать. Если тесты пройдены - слиться с «стволом».

Некоторые системы контроля версий (например, bzr / hg / git) делают это проще, чем другие, но на большинстве это возможно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top