2009-11-18 4 views
4

У нас есть автоматизированный сервер сборки, который накапливает наш код в ночное время, что полезно для нас, так как не все из нашей команды могут построить все дерево исходных текстов. В последнее время некоторые члены команды становятся все более слабыми в исправлении ошибок сборки; иногда недели пройдут без успешной сборки. Я даже подслушал одного разработчика: «сборка уже сломана, сейчас самое подходящее время, чтобы добавить [некоторые нарушающие изменения]». Поскольку я работаю над кодом, самым дальним нисходящим потоком, я обычно работаю с частями дерева, которые с трудом не синхронизируются с репозиторием исходного кода, что очень сложно проверить изменения, прежде чем я их отправлю.Насколько важно быстро установить ночную сборку?

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

+0

Возможно, вам стоит угрожать им аутсорсингом, если они не будут действовать вместе.:) –

ответ

11

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

+0

+1 - весь смысл наличия сервера CI и ночной сборки заключается в том, что вы ** знаете **, что он строит и передает ваши тесты, и, следовательно, проблема не должна быть * огромной * проблемой. – Murph

+1

+1. Есть сообщение Джеффа @ http://www.codinghorror.com/blog/archives/000052.html, говорящего немного о прагматичном программисте, в котором они обсуждают правило «Не жить с разбитыми окнами». Я думаю, что неудачный тест в пакете определенно «сломанное окно» – Falaina

4

Эти разработчики явно должны быть отброшены назад в форму.

Я предлагаю строить по крайней мере несколько раз в день, если не по проверкам. И как только вы снова получите успешный цикл сборки, попробуйте (в шутку) у человека, который сломал сборку - когда это произойдет.

Каждый человек должен взять на себя ответственность за кодовую базу и взять на себя ответственность.

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

+0

Наша сборка занимает несколько часов, поэтому на всех изменениях не стоит строить. Я думаю, проблема заключается не в том, что люди не знают, что сборка нарушена, просто им все равно. –

+4

Затем вам нужно перестроить его в сборку подкомпонентов. Вы можете использовать уже построенные артефакты для ссылки, если их код не изменился. –

+0

Если проблема в том, что людям просто все равно, то сломанная сборка - это наименьшая из ваших проблем. –

2

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

+0

Мы действительно это произошло. Внезапное изменение было внесено где-то в конце сборки, но это не было видно до 2 недель спустя. –

2

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

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

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

0

Мой друг рассказал мне о своей команде, у которой был Цуккини Судьбы. Любой, кто нарушил ночную сборку, должен был показать ZoD на своем столе. Этот овощ находился в довольно продвинутом состоянии разложения, который ясно высказал сообщение, что сломанная сборка не была чем-то, что можно было терпеть.

Если команда недостаточно мотивирована, чтобы сохранить ночные здания, то это то, что должно быть предусмотрено/поощрено менеджерами.

Смежные вопросы