сталкивался. В общем есть проект, достаточно большой (полный билд сейчас занимает 25-30 минут). И он продолжает расти, значит это время будет увеличиваться.
Решили, что некоторые части достаточно устоявшиеся и редко меняются (скажем, раз в месяц), нет надобности их билдить каждый день локально и в пайплайне. Самым очевидным для нас решением стало завернуть эти части в нагет пакеты. Но всё таки иногда изменения вносятся и тогда тестирование становится довольно трудоёмким: сформировать свой нагет пакет, подсунуть его туда, где хочешь протестить (интеграционные тесты или ЮИ), что-то не так - поменять, повторить. В общем, есть ли какой то способ (в msvs, параметры ms build, ещё что-то) переключения источника библиотеки - папка с нагет пакетами или папка с бинарниками/ссылка на проект внутри солюшена?
Что надо то?)
Не слышал про подгрузку динамически либо нугет, либо папки с бинарниками, разве версионирование нагета не подходит для этого?
Ну вообще можно разный сорс подавать, но на кой если есть эта версионированность
Стандартная боль монореп. Конечно можно сорс другой подсунуть. Nuget.config кладёшь в проект и всё
ситуация такая: в первый модуль, который будет нагет пакетом внесены изменения. Перед тем как пушить их, хотелось бы протестить локально в другом модуле - интеграционном тесте или в UI. Для этого мне локально надо создать свой нагет пакет, поменять нагет источник в ЮИ, обновиться и тестить. Вот хотелось бы избежать этих локальных заморочек, а просто взять дллку, получившуюся из первого модуля и тестить
Тут я вижу что выделен нугет плохо, код сильно связан, проще хранить и далее в монорепе. Кэш добавить - день работы девопса
Да, конечно, это очень просто делается. Можно сделать кастомный nuget source, и его указать в конфиге. И им рулить хоть в тестах, хоть на дев машинах, как угодно переколбасить. Но это можно и настройками билд сервера решить. У нас вот вся сборка разбита на несколько сотен небольших тасок, в которых настроены checkout rules, чтобы они правильно кэшировались и переиспользовались в рамках build chain. И обходимся без промежуточных нугетов во время билда. (но после билда всё равно пакуем в нугеты, так прикольнее)
Обсуждают сегодня