Вот сценарий:
Наш исходный код находится на Github.
Здесь на работе мы запускаем Bamboo (в настоящее время 2.7.3) на сервере Linux.
У нас есть несколько сборок, которые передаются удаленным агентам (например, для сборки программного обеспечения iPhone). На удаленном агенте Bamboo клонирует исходный код из Github, выполняет сборку, а затем загружает артефакты на сервер. Это работает именно так, как мы хотим / ожидаем.
Проблема в том, что сервер Bamboo, похоже, тоже проверяет репозиторий git, и он делает это для каждого отдельного плана сборки, который у нас есть. Для этих проверок он занимает значительный процент дискового пространства, и я не вижу способа отключить их.
Любые идеи?
Если вам не нужно запускать какие-либо задания на главном сервере Bamboo, вы можете отключить локальный агент по умолчанию. См. Документацию Bamboo.
При первом запуске плана Bamboo выполняет полное клонирование, сохраняет данные в каталоге локального кэша и завершает сборку. При последующих сборках Bamboo выполняет git-выборку из удаленного репозитория, чтобы увидеть, есть ли дополнительные изменения, и, если да, обновляет локальный кеш. Как и при первом запуске, данные для плана затем извлекаются из локального кеша. Следовательно, более быстрая проверка.
Если требуется удалить репозиторий git из агента и клонировать его заново для каждой сборки, достаточно просто включить "Force Clean Build" в вашей задаче проверки исходного кода в вашем плане.
Если вы хотите сохранить дисковое пространство, достаточно включить «Чистить рабочий каталог после каждой сборки» вариант в конфигурации плана. Этот параметр увеличивает время сборки, особенно если у вас большие репозитории Git, но определенно экономит место на диске.
Вам также может быть интересно проголосовать за этот запрос функции - БАМ-13589. Надеюсь, что это прояснит.
Эта статья объясняет, как сохраненные кеши Git ускоряют сборку.