Przyjmując architekturę mikroserwisów, stwierdziliśmy, że mamy wiele projektów o tej samej strukturze.
Projekty .Net i .Net Core w szczególności i większość z nich są publikowane jako Azure App Services (aplikacje internetowe).
Dzisiaj musimy skonfigurować definicję kompilacji i definicję wydania dla każdego projektu / aplikacji.
Czy istnieje sposób, aby mieć tylko jedną definicję kompilacji i jedną definicję wydania, które mogą być wyzwalane przez dowolne sprawdzanie, budowanie konkretnego projektu i tworzenie wydania, które publikuje w określonej usłudze aplikacji?
Dziękuję Ci
Odpowiedzi:
1 dla odpowiedzi № 1Tak, to możliwe. Można zdefiniować kompilację i wersję, aby oddzielnie budować / wdrażać różne typy projektów.
Załóżmy, że masz dwa projekty w repozytorium git:
root
|___ .git
|___ dotnetProject
|___ dotnetProject.sln
|___ dotnetProject
|___ dotnetProject.csproj
|___ …
|___ dotnetCoreProject
|___ dotnetCoreProject.sln
|___ dotnetCoreProject
|___ dotnetCoreProject.csproj
|___ …
Szczegółowe sety jak poniżej:
- Dodaj wszystkie zadania, które musisz zbudować i wdrożyć dla swoich projektów w definicji kompilacji i wydania.
- Zdefiniuj dwie zmienne
dotnet
idotnetCore
z wartością domyślną0
w definicji kompilacji i wydania oddzielnie. Ustaw niestandardowy warunek dla zadań, które musisz zbudować / wdrożyć dla różnych typów projektów.
Wykryj, które projekty są zmieniane dla kompilacji CI, dodając zadanie PowerShell.
Dodaj zadanie PowerShell na początku zadań i sprawdź, które pliki zostały zmienione przez ostatnie zatwierdzenie. Jeśli projekt .NET został zmieniony, ustaw
dotnet
zmienna z wartością1
i utwórz plikdotnet
z zawartością1
. Jeśli projekt podstawowy .NET został zmieniony, ustaw zmiennądotnetCore
z wartością1
i utwórz plikdotnetCore
z zawartością1
.Uwaga: powinieneś także opublikować pliki
dotnet
idotnetCore
jako artefakty kompilacji, ponieważ należy przeanalizować wartość dladotnet
idotnetCore
zmienne w definicji wydania na podstawie plików.Zmiana
dotnet
idotnetCore
wartość zmiennych na podstawie plikówdotnet
idotnetCore
.Na początku definicji wydania dodaj zadanie PowerShell. Aby sprawdzić, czy plik
dotnet
/dotnetCore
w artefaktach budowy. Jeśli tak, zmień powiązaną zmienną na podstawie zawartości plików.