Хранение сторонней библиотеки в системе контроля версий с использованием непрерывной интеграции - PullRequest
2 голосов
/ 27 мая 2009

Я только что добавил очень большую стороннюю библиотеку (Boost) в нашу систему контроля версий. Я создал его с собственным хранилищем. Я пометил его версию, чтобы другие проекты могли svn: externals эту конкретную версию.

Это прекрасно, пока я не пойму, что мой сервер Continuous Integration (CI) будет выполнять полную проверку каждый раз, когда я проверяю некоторый код. (Очевидно, я изначально специально настроил свой CI-сервер). Это может привести к очень длительному времени проверки на конце сервера CI.

Итак, вопрос в том, хорошо ли это? Может кто-нибудь предложить потенциально лучший способ справиться с этим шаблоном?

РЕДАКТИРОВАТЬ: Я использую сервер TeamCity CI.

Ответы [ 2 ]

6 голосов
/ 09 июня 2009

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

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

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

Для получения дополнительной информации о чистых проверках и правилах оформления заказа см .:

http://www.jetbrains.net/confluence/display/TCD4/Clean+Checkout#CleanCheckout-sourcescache http://www.jetbrains.net/confluence/display/TCD4/VCS+Checkout+Rules

3 голосов
/ 27 мая 2009

Некоторые возможности приходят на ум:

  1. Изменить CI для обновления постепенно.
  2. Избегайте svn: externals, вместо этого используйте символическую ссылку для оформления заказа во время сборки.
...