Как выстраивать CI с несколькими джобами для .net решения с несколькими проектами?
Всем привет!
Возникла сложность с организацией CI-процесса в GitHub Actions для .NET-решения (solution), содержащего несколько проектов.
Текущая ситуация:
- Есть единое решение (
.sln) с несколькими проектами - В CI-пайплайне разделены этапы
buildиtestна две джобы - Хочу передать собранные артефакты из
buildвtest, так чтобы можно было использоватьdotnet test --no-build
Проблема:
Использование actions/upload-artifact для каждого отдельного билда в рамках одного решения выглядит неоптимально — такой подход плохо масштабируется при росте числа проектов. Существуют ли более универсальные способы передачи артефактов между job'ами, позволяющие сохранить структуру папок, но без необходимости явно указывать каждый проект?
Рассматриваемые варианты:
- Объединить
buildиtestв одну джобу (без передачи артефактов) - Перейти к подходу "1 solution = 1 проект"
Вопрос: Как правильно реализовать такой пайплайн? Какие best practisec существуют для подобных сценариев?