Как выстраивать CI с несколькими джобами для .net решения с несколькими проектами?

Всем привет!

Возникла сложность с организацией CI-процесса в GitHub Actions для .NET-решения (solution), содержащего несколько проектов.

Текущая ситуация:

  • Есть единое решение (.sln) с несколькими проектами
  • В CI-пайплайне разделены этапы build и test на две джобы
  • Хочу передать собранные артефакты из build в test, так чтобы можно было использовать dotnet test --no-build

Проблема:

Использование actions/upload-artifact для каждого отдельного билда в рамках одного решения выглядит неоптимально — такой подход плохо масштабируется при росте числа проектов. Существуют ли более универсальные способы передачи артефактов между job'ами, позволяющие сохранить структуру папок, но без необходимости явно указывать каждый проект?

Рассматриваемые варианты:

  1. Объединить build и test в одну джобу (без передачи артефактов)
  2. Перейти к подходу "1 solution = 1 проект"

Вопрос: Как правильно реализовать такой пайплайн? Какие best practisec существуют для подобных сценариев?


Ответы (0 шт):