Прежде чем я услышал термин «непрерывная интеграция» (это было в 2002 или 2003 году), я написал сценарий ночной сборки, который подключался к cvs, взял чистую копию основного проекта и пяти меньших подпроектов, собрал все jar-файлы через ant, затем собрал и повторно развернул WAR-файл с помощью второго ant-скрипта, который использовал задачи ant tomcat.
Он запускался через cron в 7 вечера и отправлял электронное письмо с кучей прикрепленных выходных файлов. Мы использовали его в течение всех 7 месяцев проекта, и он оставался в использовании в течение следующих 20 месяцев технического обслуживания и улучшений.
Работало нормально, но я бы предпочел hudson, а не bash, cron и ant.