Что должно содержать хранилище? - PullRequest
0 голосов
/ 24 декабря 2008

Я пытаюсь настроить процесс непрерывной интеграции. Для различных задач сборки (компиляция, тестирование, документация и т. Д.) Мне нужны инструменты, которые выполняют эти задачи (csc, NUnit, NDoc и т. Д.). У меня такой вопрос: должны ли эти инструменты войти в мой репозиторий исходного кода?

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

Можно ли устанавливать эти инструменты? Не увеличит ли это время для каждой сборки без необходимости?

Ответы [ 3 ]

2 голосов
/ 24 декабря 2008

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

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

2 голосов
/ 24 декабря 2008

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

1 голос
/ 24 декабря 2008

Переустановка инструментов для каждой сборки излишне и замедлит вас.

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

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

Подумайте, как бы вы создали еще один сервер непрерывной интеграции, либо для двух из них, либо для второго сайта, либо для восстановления после аварии. Документ о том, как был настроен сервер непрерывной интеграции .

То, что действительно необходимо для управления версиями , это сценарии сборки, которые обращаются к нужным версиям инструментов, особенно если вы выбрали установку нескольких версий инструментов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...