Ćwiczenie — tworzenie przepływu danych 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 Azure Pipelines dla projektu Models i znajdziesz artefakt w Azure Artifacts z numerem wersji 1.0.0 w swoim kanale.
Jakie zmiany zostały wprowadzone w projekcie?
Pamiętaj, że witryna Space Game to aplikacja 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 modeli do oddzielnej biblioteki, aby wiele projektów mógł korzystać z tych klas.
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 modeli z istniejącego projektu Tailspin.SpaceGame.Web. Zastępują klasy modeli w istniejącym projekcie odwołaniem do projektu Tailspin.SpaceGame.Web.Models.
Aby utworzyć te projekty, Andy i Mara używają dwóch ścieżek, po jednej dla każdego projektu. Masz już pierwszy projekt i skojarzona z nim jego konfiguracja usługi Azure Pipelines. W tym miejscu zaforkujesz drugi projekt na GitHubie i utworzysz konfigurację Azure Pipelines, aby go zbudować. Opublikujesz wynikowy pakiet w usłudze Azure Artifacts.
Przygotowywanie programu Visual Studio Code
Wcześniej skonfigurowałeś 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, gdzie znajduje się twój projekt mslearn-tailspin-spacegame-web. Oto przykład, który przenosi się do katalogu macierzystego:
cd ~
Pobieranie kodu źródłowego
Pobierz kod źródłowy dla projektu Tailspin.SpaceGame.Web.Models z usługi GitHub i skonfiguruj program Visual Studio Code, aby móc pracować z plikami.
Utwórz fork
Pierwszym krokiem jest forkowanie repozytorium mslearn-tailspin-spacegame-web-models, aby móc pracować z plikami źródłowymi i je modyfikować. Pamiętaj, że Mara umieściła katalog Models w nowym projekcie i usunęła go z projektu internetowego.
Aby utworzyć fork projektu mslearn-tailspin-spacegame-web-models do swojego konta GitHub:
- W przeglądarce przejdź do GitHubi zaloguj się.
- Przejdź do mslearn-tailspin-spacegame-web-models projektu.
- Wybierz rozwidlenie.
- Aby sforkować repozytorium na swoim koncie, postępuj zgodnie z instrukcjami.
Sklonuj swoje rozgałęzienie lokalnie
Aby sklonować projekty mslearn-tailspin-spacegame-web-models na swój komputer:
W witrynie GitHub przejdź do rozwidlenia mslearn-tailspin-spacegame-web-models projektu.
Wybierz Kod. Następnie na karcie HTTPS wybierz przycisk obok wyświetlanego adresu URL, aby skopiować go do schowka.
W programie Visual Studio Code przejdź do okna terminalu i uruchom to polecenie
git clone
. 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 repozytorium.
cd mslearn-tailspin-spacegame-web-models
Otwórz projekt i sprawdź konfigurację
W programie Visual Studio Code okno terminalu wskazuje na 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 .
W Eksploratorze plików zostanie wyświetlony katalog i drzewo plików.
Otwórz ponownie zintegrowany terminal. Terminal umieszcza Cię w katalogu głównym projektu internetowego.
Otwórz plik azure-pipelines.yml.
Zobaczysz kroki, w których pakiet został skompilowany, wersja jest ustawiona, a pakiet jest dodawany do usługi Azure Artifacts.
To zadanie
DotNetCoreCLI@2
kompiluje projekt:- task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj'
Zadanie
DotNetCoreCLI@2
pakuje projekt w 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 często używa się schematu przechowywania wersji
byPrereleaseNumber
. Spowoduje to dołączenie unikatowego sufiksu wersji wstępnej, takiego jak "-CI-20190621-042647" na końcu numeru wersji. W tym przykładzie kompletny numer wersji to "1.0.0-CI-20190621-042647".To zadanie
NuGetCommand@2
wypycha pakiet do kanału informacyjnego Tailspin.SpaceGame.Web.Models źródła danych usługi 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, którą podałeś w poprzednim ćwiczeniu.
-
Ustawianie uprawnień
Zanim będzie można skonfigurować i uruchomić potok, musisz przyznać usłudze Build odpowiednie uprawnienia.
- Przejdź do projektu w usłudze Azure DevOps.
- Wybierz pozycję Artifacts 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ę Contributor, a następnie wybierz Zapisz.
Utwórz potok w usłudze Azure Pipelines
Wiesz już, jak skonfigurować usługę Azure Pipelines we wcześniejszym module. Jeśli potrzebujesz przypomnienia, przejdź do Tworzenie potoku kompilacji za pomocą usługi Azure Pipelines.
Oto jak skonfigurować drugi pipeline do zbudowania pakietu i przesłania go do Azure Artifacts.
W ramach usługi Azure DevOps przejdź do projektu Space Game — web — Dependencies.
Z menu po lewej stronie wybierz pozycję Potoki.
Wybierz nowy potok.
Na karcie Connect 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ń do dołu i wybierz pozycję Zatwierdź i zainstaluj.
Na karcie Przejrzyj zostanie wyświetlony plik azure-pipelines.yml nowego potoku.
Wybierz pozycję Uruchom.
Obejrzyj działanie rurociągu.
Przejdź do zakładki Artefakty.
Z listy rozwijanej u góry wybierz pozycję Tailspin.SpaceGame.Web.Models.
Zostanie wyświetlony wynikowy pakiet Tailspin.SpaceGame.Web.Modelsw usłudze Azure Artifacts.
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 jednostce użyjesz tego numeru wersji.