Централизованный сервер сборки для локальной и удаленной компиляции - PullRequest
1 голос
/ 22 июня 2011

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

Поскольку лицензия очень дорогая, покупка большего количества из них не является вариантом.Я надеялся более полно использовать лицензию, настроив центральную машину компилятора, на которую вы можете загружать задания и заставлять машину выполнять эту работу.Мы также ищем автоматизированные сборки для проверки исходного кода.

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

В идеале этот инструмент сможет находиться между IDE и компилирующим компьютером, чтобы в IDE казалось, что сборка выполняется локально.Затем, если появятся какие-либо предупреждения / ошибки, мы все равно сможем использовать эти удобные функции для определения синтаксических ошибок.

Ответы [ 2 ]

2 голосов
/ 19 июля 2011

Вы можете воспользоваться инструментом buildbot try . Это позволяет вам отправить файл патча сборщику, чтобы он работал удаленно, и позволяет блокировать результат.

При условии, что у вас уже есть централизованный репозиторий, все, что вам нужно будет сделать, это создать вызов buildbot try, передающий необходимые параметры, и поместить его вместо фактического компилятора в вашем файле makefile / buildscript.

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

0 голосов
/ 05 февраля 2012

Если вы можете настроить команды, используемые для запуска компилятора, и можете ssh для центрального компьютера, то вы, вероятно, можете написать упаковщик, который вызывает компилятор на удаленном компьютере, используя ssh.Чтобы это работало хорошо, вам, вероятно, понадобится смонтировать исходный каталог как на клиенте, так и на сервере.

Если исходный каталог смонтирован в одном и том же месте на обеих машинах, сценарий может выглядеть так:simple as

#!/bin/sh
ssh $REMOTE_HOST cd "$PWD" ";" $@

Это вызывает команду, переданную в качестве аргумента для $REMOTE_HOST, в том же каталоге на сервере.

...