Я много слышал эту жалобу, и даже в своей компании. Это просто способ работы. Если вы не способны постоянно компилировать и тестировать свои материалы, вы, вероятно, работаете над своими проблемами хаотичным образом и одновременно трогаете слишком много кода. Ты жонглер. Жонглеры не программируют.
На всех моих проектах мы строим ЧАСЫ. Для этого мы используем Luntbuild, и он отправит по почте всем участникам проекта, как только сборка закончится неудачей, и продолжит рассылку до тех пор, пока сборка не сработает. Сломанный код не регистрируется, и когда кто-то ломает сборку, он должен получить куки для всей команды (или другое подходящее «унижение» :-)).
Каждую неделю мы пытаемся выполнить установку программного обеспечения на наших тестовых серверах, чтобы наш отдел тестирования мог протестировать программное обеспечение.
Вы увидите, что это приведет к улучшению кода и возможности отправки проекта практически в любое время в течение проекта, потому что:
- Вы вынуждены разбивать свою работу на более мелкие, более простые в использовании и, следовательно, более легкие для кодирования фрагменты, что приведет к меньшему количеству ошибок.
- Вы вынуждены часто обновляться и регистрироваться, что ускоряет реализацию проекта, потому что вы получаете выгоду от повторного использования ваших коллег в начале проекта.
- Код будет чище, потому что вы хотите иметь возможность написать юнит-тест для него (в противном случае вас получит «полиция страхового покрытия»)
Я понимаю, что это не реальный ответ на вопрос "как вы поддерживаете сборки", я думаю, что на самом деле нет ответа по-настоящему серебряной пули. Вы просто должны начать делать это и посмотреть, работает ли это для вас. Я думаю, что большая часть профессиональных программистов согласна с тем, что непрерывная интеграция, автоматическое тестирование и ежедневные сборки - это дело гугл.
В моем текущем проекте есть 2 проблемы, одна из которых заключается в том, что сервер сборки не отправляет почту из-за проблем с сетью, а другая - из-за слишком большой паники. Это означает, что неудачные почасовые сборки замечены намного позже, и еженедельные установки невозможны из-за незавершенной функциональности. Вы можете сразу увидеть отражение этой проблемы в проекте и мотивацию членов команды. Это просто не идет "гладко".
Надеюсь, это поможет. Держите их зелеными! (юнит-тесты, то есть)
edit: «Нажатие на кнопку», на которую вы ссылаетесь, это «пошаговая сборка». Это означает, что у вас есть скрипт, который выполняет сборку (или ant, или maven, или что-то еще), и вы используете этот скрипт для выполнения тестов aswel. Таким образом, когда ваш автоматизированный процесс сборки работает, вы знаете, что у вас есть готовый продукт. Вы просто запускаете скрипт и отправляете вывод клиенту. Наш скрипт сборки создает структуру каталогов, которая копируется 1-на-1 на компакт-диск, с которым мы поставляем программное обеспечение.