Одновременное создание и создание установочного пакета для кроссплатформенного приложения на разных ОС при изменении исходного кода

Например, у меня есть несколько Операционных Систем в моей виртуальной сети, например:

* Windows 7
* Fedora 17
* Ubuntu 12.10
* Mac OS X

и, возможно, другие (в будущем).

Все операционные системы имеют доступ к ртутному репозиторию моего кроссплатформенного приложения (например, написано в Qt).

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

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

Какие решения уже существуют для решения моей проблемы?

Спасибо за внимание!

То, о чем вы говорите, очень похоже на  [автоматизацию сборки](https://en.wikipedia.org/wiki/Build_automation)  или, возможно,  [непрерывная интеграция](http: //en.wikipedia.org/wiki/Continuous_integration ) .

Существует множество продуктов, которые в основном сидят на сервере и контролируют ваш репозиторий управления версиями, ожидая изменений. Когда они находят их, они могут выполнять практически любые действия, которые могут быть автоматизированы. Большинство из них предназначены для выполнения таких задач, как построение проекта, выполнение модульных тестов, толкание артефактов на FTP и т. Д.

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

Я использовал  [Дженкинс](https://jenkins-ci.org/)  в прошлом, но существует множество других. Googling «автоматизация сборки» - это, вероятно, ваш лучший выбор.