Зависимость TeamCity без копирования файлов?

Есть ли способ получить артефакты сборки TeamCity? ссылка (но не копируется) как зависимость для другой сборки TeamCity?

Немного предыстории: я пытался сократить время сборки в нескольких наших конфигурациях TeamCity. Это программа на С ++, которая зависит от нескольких сторонних библиотек, которые наш Sys Admin не желает устанавливать на сборочную машину.

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

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

1

Решение

Насколько я знаю, нет способа предотвратить копирование артефактов с сервера на агент: компилятору / компоновщику будет невозможно найти зависимости …

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

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

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

1

Другие решения

Не используйте артефактные зависимости.

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

Это гарантирует, что двоичные файлы из ваших сторонних библиотек всегда будут доступны в локальной файловой системе и всегда будут обновляться (но без постоянной перестройки — при условии отсутствия изменений в исходном коде).

Вы должны быть в состоянии найти сторонние бинарные файлы достаточно легко в каталог проверок.

Причина медленных артефактов в том, что они загружаются на центральный центральный сервер, а затем загружаются агентами. Очевидно, что не подходит для 1ГБ сторонних библиотек.

2

По вопросам рекламы [email protected]