Ćwiczenie — Tworzenie potoku dla pakietu
W tym miejscu uzyskasz nowy kod zespołu dla projektu Tailspin.SpaceGame.Web.Models , który jest teraz oddzielony od projektu Tailspin.SpaceGame.Web . Utworzysz projekt usługi Azure Pipelines dla projektu Models i zobaczysz artefakt z numerem wersji 1.0.0 w swoim źródle danych w usłudze Azure Artifacts.
Jakie zmiany zostały wprowadzone w projekcie?
Pamiętaj, że witryna internetowa Space Game jest aplikacją ASP.NET Core. Używa wzorca Model-View-Controller (MVC), aby oddzielić dane od sposobu wyświetlania tych danych w interfejsie użytkownika. Andy i Mara chcą przenieść klasy modelu do oddzielnej biblioteki, aby mogło z nich korzystać wiele projektów.
W tym celu tworzą nowy projekt języka C# o nazwie Tailspin.SpaceGame.Web.Models , który zawiera tylko klasy modeli. Jednocześnie usuwają klasy modelu z istniejącego projektu Tailspin.SpaceGame.Web. Zastępują klasy modelu w istniejącym projekcie odwołaniem do projektu Tailspin.SpaceGame.Web.Models.
Aby skompilować te projekty, Andy i Mara używają dwóch potoków, po jednym dla każdego projektu. Masz już pierwszy projekt i skojarzoną z nim konfigurację usługi Azure Pipelines. W tym miejscu utworzysz drugi projekt w usłudze GitHub i utworzysz konfigurację usługi Azure Pipelines, aby ją skompilować. Opublikujesz wynikowy pakiet w usłudze Azure Artifacts.
Przygotowywanie programu Visual Studio Code
Wcześniej skonfigurowaliśmy program Visual Studio Code do pracy z projektem Tailspin.SpaceGame.Web . W tym miejscu otworzysz drugie wystąpienie programu Visual Studio Code, aby móc pracować z projektem Tailspin.SpaceGame.Web.Models .
Otwórz drugie wystąpienie programu Visual Studio Code.
W programie Visual Studio Code otwórz zintegrowany terminal.
Przejdź do katalogu nadrzędnego, z którego znajduje się projekt mslearn-tailspin-spacegame-web . Oto przykład, który przenosi się do katalogu macierzystego:
cd ~
Uzyskiwanie kodu źródłowego
Pobierz kod źródłowy projektu Tailspin.SpaceGame.Web.Models z usługi GitHub i skonfiguruj program Visual Studio Code, aby móc pracować z plikami.
Tworzenie rozwidlenia
Pierwszym krokiem jest utworzenie rozwidlenia repozytorium mslearn-tailspin-spacegame-web-models w celu umożliwienia pracy z plikami źródłowymi i ich modyfikowania. Pamiętaj, że Mara umieściła katalog Models w nowym projekcie i usunęła go z projektu sieci Web.
Aby utworzyć rozwidlenie projektu mslearn-tailspin-spacegame-web-models na koncie usługi GitHub:
- W przeglądarce internetowej przejdź do witryny GitHub i zaloguj się.
- Przejdź do projektu mslearn-tailspin-spacegame-web-models .
- Wybierz pozycję Rozwidlenie.
- Aby rozwidlić repozytorium na koncie, postępuj zgodnie z instrukcjami.
Klonowanie rozwidlenia lokalnie
Aby sklonować projekty mslearn-tailspin-spacegame-web-models na komputer:
W witrynie GitHub przejdź do rozwidlenia projektu mslearn-tailspin-spacegame-web-models .
Wybierz pozycję Kod. Następnie na karcie HTTPS wybierz przycisk obok wyświetlanego adresu URL, aby skopiować adres URL do schowka.
W programie Visual Studio Code przejdź do okna terminalu i uruchom to
git clone
polecenie. Zastąp wyświetlany adres URL zawartością schowka.git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-models.git
Przejdź do katalogu mslearn-tailspin-spacegame-web-models . Jest to katalog główny Twojego repozytorium.
cd mslearn-tailspin-spacegame-web-models
Otwieranie projektu i sprawdzanie konfiguracji
W programie Visual Studio Code okno terminalu wskazuje katalog główny projektu mslearn-tailspin-spacegame-web-models . Otwórz projekt z eksploratora plików, aby wyświetlić jego strukturę i pracować z plikami.
Najprostszym sposobem otwarcia projektu jest ponowne otwarcie programu Visual Studio Code w bieżącym katalogu. W tym celu uruchom następujące polecenie w zintegrowanym terminalu:
code -r .
Katalog i drzewo plików zostaną wyświetlone w eksploratorze plików.
Otwórz ponownie zintegrowany terminal. Terminal umieszcza Cię w katalogu głównym projektu internetowego.
Otwórz plik azure-pipelines.yml.
Zobaczysz instrukcje dotyczące kompilacji pakietu, ustawiana wersji i dodawania pakietu do usługi Azure Artifacts.
To zadanie
DotNetCoreCLI@2
powoduje kompilację projektu:- task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj'
To zadane
DotNetCoreCLI@2
tworzy pakiet projektu o wersji 1.0.0:- task: DotNetCoreCLI@2 displayName: 'Pack the project - $(buildConfiguration)' inputs: command: 'pack' projects: '**/*.csproj' arguments: '--no-build --configuration $(buildConfiguration)' versioningScheme: byPrereleaseNumber majorVersion: '1' minorVersion: '0' patchVersion: '0'
Podczas tworzenia pakietu zwykle używa się schematu wersjonowania
byPrereleaseNumber
. Spowoduje to dołączenie unikatowego sufiksu wersji wstępnej, takiego jak "-CI-20190621-042647" na końcu numeru wersji. W tym przykładzie pełny numer wersji miałby postać „1.0.0-CI-20190621-042647”.To zadanie
NuGetCommand@2
wypycha pakiet do źródła danych Tailspin.SpaceGame.Web.Models w usłudze Azure Artifacts:- task: NuGetCommand@2 displayName: 'Publish NuGet package' inputs: command: push feedPublish: '$(System.TeamProject)/Tailspin.SpaceGame.Web.Models' allowPackageConflicts: true condition: succeeded()
feedPublish
określa nazwę kanału informacyjnego do opublikowania. Format nazwy to<projectName>/<feedName>
, gdzie:$(System.TeamProject)
jest wstępnie zdefiniowaną zmienną, która odwołuje się do nazwy projektu; na przykład "Space Game - web - Dependencies".Tailspin.SpaceGame.Web.Models
to nazwa kanału informacyjnego podana w poprzednim ćwiczeniu.
Ustawianie uprawnień
Zanim będzie można skonfigurować i uruchomić potok, musisz przyznać usłudze kompilacji odpowiednie uprawnienia.
- Przejdź do projektu w usłudze Azure DevOps.
- Wybierz pozycję Artefakty z menu po lewej stronie.
- Wybierz ikonę Ustawienia w prawym górnym rogu ekranu, a następnie wybierz kartę Uprawnienia.
- Wybierz przycisk Dodaj użytkowników/grupy.
- W polu Użytkownicy/grupy wprowadź space game - web - dependencies Build Service, wybierz rolę Współautor, a następnie wybierz pozycję Zapisz.
Tworzenie potoku w usłudze Azure Pipelines
W poprzednim module przedstawiono sposób konfigurowania usługi Azure Pipelines. Jeśli potrzebujesz odświeżenia, przejdź do sekcji Tworzenie potoku kompilacji za pomocą usługi Azure Pipelines.
Poniżej przedstawiono sposób konfigurowania drugiego potoku w celu skompilowania pakietu i przekazania tego pakietu do usługi Azure Artifacts.
W usłudze Azure DevOps przejdź do projektu Space Game — web — Dependencies .
Z menu po lewej stronie wybierz pozycję Potoki.
Wybierz pozycję Nowy potok.
Na karcie Connect (Połączenie) wybierz pozycję GitHub.
Na karcie Wybierz wybierz pozycję mslearn-tailspin-spacegame-web-models.
Jeśli zostanie wyświetlony monit, wprowadź poświadczenia usługi GitHub. Na wyświetlonej stronie przewiń w dół, a następnie wybierz pozycję Zatwierdź i zainstaluj.
Na karcie Review (Recenzja) zostanie wyświetlony plik azure-pipelines.yml nowego potoku.
Wybierz Uruchom.
Obserwuj przebieg potoku.
Przejdź do karty Artefakty .
Z listy rozwijanej u góry wybierz pozycję Tailspin.SpaceGame.Web.Models.
W usłudze Azure Artifacts zostanie wyświetlona strona wynikowa Tailspin.SpaceGame.Web.Models.
Wybierz pakiet, aby przejść do strony szczegółów. Następnie skopiuj numer wersji do lokalizacji, w której można łatwo uzyskać do niego dostęp później.
W następnej lekcji użyjesz tego numeru wersji.