Мы используем виртуальные машины и сервер Hudson .
У нас есть виртуальная машина для каждой поддерживаемой архитектуры (обычно компиляция не увеличивает ресурсы, выделенные для них, поэтому с виртуальной машиной все в порядке). Я предполагаю, что конфигурация каждой виртуальной машины может управляться чем-то вроде Puppet или Chef, чтобы обеспечить подходящую среду сборки. Конечно, вы могли бы использовать реальные машины, если у вас есть оборудование, но вы хотели бы избежать использования машин, которые фактически используют люди (например, рабочие станции разработчиков).
Затем мы используем мультиконфигурационный проект в Хадсоне для настройки матрицы сборки. Матрица сборки позволяет нам (одним щелчком мыши) создавать несколько версий Python на нескольких архитектурах, но теоретически вы можете создать любую комбинацию, которую вы можете настроить в своей матрице. Конечно, вы могли бы использовать Дженкинс вместо этого.