Есть ли инструмент для кроссплатформенной непрерывной интеграции (c ++ Win32 и linux) - PullRequest
15 голосов
/ 15 мая 2009

Я посмотрел на пару других вопросов по SO - и не совсем уверен, что они отвечают на этот вопрос.

Мы создаем приложения на C ++ для Win32 и Linux. Сейчас у нас есть несколько скриптов (bat-файлов для win32), которые выполняются по расписанию для выполнения сборок.

Мы хотели бы иметь CI для наших проектов, но я бы хотел иметь только один CI-сервер, который будет работать на обеих платформах. Важна интеграция с SVN.

Можно ли сделать так, чтобы одна конфигурация / один продукт CI / сервер делали это?

Кто-нибудь сделал это успешно? Бамбук выглядит так, как будто он может удовлетворить наши потребности, но я ненавижу прыгать в такие расходы в качестве начальной загрузки, если мы можем избежать затрат.

Ответы [ 4 ]

11 голосов
/ 15 мая 2009

Возможно, вы захотите пойти на Хадсон или Дженкинс Хотя в первую очередь это касается проектов на основе Java, вы можете настроить их под свои нужды. Они легко интегрируются с SVN, плюс вы можете использовать функцию многошаговой сборки для вызова ваших (существующих) пакетных файлов и дальнейшей обработки.

8 голосов
/ 18 мая 2009

Buildbot - это определенно один инструмент, на который стоит обратить внимание - http://buildbot.net/trac. Центральный сервер, который отслеживает все проекты и уведомляет агентов о новых задачах, так что вы можете построить любую среду, которая вам действительно нужна, без настройки среды кросс-компиляции.

Вы также можете взглянуть на круиз-контроль @ http://cruisecontrol.sourceforge.net. Хотя он выглядит более приспособленным к созданию Java, вы можете сделать с ним немало. У меня есть установка, которая собирает бинарные файлы linux arm и i386 и упаковывает их в debs и поддерживает репозиторий debian по результатам сборки - запускайте юнит-тесты и всякие другие вещи в коде ..

Но то, что я действительно хотел сказать, это то, что в основном все используемое мной программное обеспечение ci-сервера в основном просто «планировщики заданий», и вам все равно нужно создавать / настраивать среду сборки самостоятельно, что, по крайней мере, в многоплатформенных сценариях - большие задачи, которые настраивают программное обеспечение, которое выполняет сборки и выдает хорошие отчеты из них.

4 голосов
/ 22 мая 2009

Мы используем Zed Builds и Bugs для этого, и это очень хорошо работает для нас. Существует один центральный сервер, на котором вы настраиваете свое определение сборки. Затем для каждого «шага» в полной сборке вы можете определить, на каком сервере будет выполняться этот «шаг». У нас есть шаги, которые выполняются: Win32, Linux64, Linux32, HP, AIX, Solaris, и даже шаги, которые распространяются по всему миру для удаленного выполнения.

Каждый из шагов может быть настроен для параллельной или последовательной работы, поэтому, когда HP, AIX, Solaris и Linux делают одно и то же, они могут работать параллельно, и продолжение Win32 будет ждать, пока все заканчивается, прежде чем продолжить.

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

Это не бесплатно, но время, которое оно спасло нас (особенно меня), многократно окупило стоимость программного обеспечения.

4 голосов
/ 16 мая 2009

TeamCity может запускать агенты сборки на разных платформах, например, один агент сборки в Windows и один в Linux. Доступна конфигурация, позволяющая указать, к каким агентам сборок отправляется каждая сборка.

TeamCity не является бесплатной, как в речи, но есть бесплатная, как в пиве, версия (Professional Edition) с некоторыми ограничениями (3 агента сборки, 20 пользователей, 20 конфигураций сборки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...