Я использую Azure devOps для создания и развертывания моего приложения, и в этом приложении у меня есть проект, который используется другими связанными приложениями (назовем его проектом N). Поэтому я решил развернуть этот проект как пакет NuGet и использовать его во время сборки.
Проект N может часто меняться, поэтому у меня возникли некоторые проблемы с определением надежной установки, которая:
- Создает пакет NuGet только при наличии изменений в Project N и его зависимостях
- Гарантирует, что, если пакет NuGet должен быть создан согласно пункту 1), конвейер сделает это раньше всего остального
Способ, который я до сих пор настраивал, состоит в том, чтобы иметь два разных конвейера, один, который создает пакет NuGet и развертывает его (NuGet Pipeline), и другой, который использует этот пакет NuGet, а затем создает и развертывает приложение (главный конвейер).
Проблема в том, что когда происходят изменения как в файлах, связанных с проектом N, так и в некоторых из оставшихся файлов решения, я не знаю, как сделать Правило, которое гласит: «Запустите конвейер NuGet перед главным конвейером», поэтому на данный момент я должен верить в удачу, чтобы это произошло, а если нет t, мне пришлось бы вручную запускать главный конвейер после завершения двух сборок. Потому что я хочу быть уверен, что новые изменения, внесенные в Проект N, не нарушают Решение.
Существует ли элегантный способ сделать это? Я мог бы настроить триггер, который при завершении работы Pipeline NuGet будет запускать основной конвейер, но, выполнив его таким образом, я дважды запускаю основной конвейер всякий раз, когда будут внесены изменения в проект N и остальную часть решения.