Cvičení – vytvořte pipeline pro váš balíček

Dokončeno

Tady získáte nový týmový kód pro projekt Tailspin.SpaceGame.Web.Models, který je nyní oddělený od projektu Tailspin.SpaceGame.Web. Vytvoříte projekt Azure Pipelines pro projekt Models a uvidíte artefakt v Azure Artifacts s číslem verze 1.0.0 ve vašem feedu.

Jaké změny byly v projektu provedeny?

Vzpomeňte si, že web Space Game je aplikace ASP.NET Core. ModelView-Controller (MVC) používá k oddělení dat od způsobu zobrazení dat v uživatelském rozhraní. Andy a Mara chtějí přesunout třídy modelu do samostatné knihovny, aby tyto třídy mohly používat více projektů.

K tomu vytvoří nový projekt C# s názvem Tailspin.SpaceGame.Web.Models, který obsahuje pouze třídy modelu. Současně odeberou třídy modelu ze svého existujícího projektu Tailspin.SpaceGame.Web. Třídy modelu ve svém stávajícím projektu nahradí odkazem na projekt Tailspin.SpaceGame.Web.Models.

Pokud chcete tyto projekty sestavit, Andy a Mara používají dva kanály, jeden pro každý projekt. Už máte první projekt a jeho přidruženou konfiguraci Azure Pipelines. Zde rozvětvíte druhý projekt na GitHubu a vytvoříte konfiguraci Azure Pipelines, která ho sestaví. Výsledný balíček publikujete do Azure Artifacts.

Příprava editoru Visual Studio Code

Dříve jste nastavili Visual Studio Code pro práci s projektem Tailspin.SpaceGame.Web. Tady otevřete druhou instanci editoru Visual Studio Code, abyste mohli pracovat s projektem Tailspin.SpaceGame.Web.Models.

  1. Otevřete druhou instanci editoru Visual Studio Code.

  2. V editoru Visual Studio Code otevřete integrovaný terminál.

  3. Přejděte do nadřazeného adresáře, kde je umístěn váš projekt mslearn-tailspin-spacegame-web. Tady je příklad, který se přesune do domovského adresáře:

    cd ~
    

Získání zdrojového kódu

Získejte zdrojový kód pro projekt Tailspin.SpaceGame.Web.Models z GitHubu a nastavte Visual Studio Code, abyste mohli pracovat se soubory.

Vytvoření forku

Prvním krokem je vytvoření forku mslearn-tailspin-spacegame-web-models úložiště, abyste mohli pracovat se zdrojovými soubory a upravovat je. Vzpomeňte si, že Mara umístila adresář Models do nového projektu a odebrala ho z webového projektu.

Vytvořte fork mslearn-tailspin-spacegame-web-models projektu do svého účtu na GitHubu:

  1. Ve webovém prohlížeči přejděte na GitHubu a přihlaste se.
  2. Přejděte na projekt mslearn-tailspin-spacegame-web-models.
  3. Vyberte forku.
  4. Pokud chcete vytvořit fork úložiště do svého účtu, postupujte podle pokynů.

Naklonujte fork místně

Pro klonování mslearn-tailspin-spacegame-web-models projektů do vašeho počítače:

  1. Na GitHubu přejděte na fork projektu mslearn-tailspin-spacegame-web-models.

  2. Vyberte kód. Potom na kartě HTTPS vyberte tlačítko vedle zobrazené adresy URL a zkopírujte adresu URL do schránky.

    snímek obrazovky s adresou URL a tlačítkem kopírovat z úložiště GitHub

  3. V editoru Visual Studio Code přejděte do okna terminálu a spusťte tento příkaz git clone. Nahraďte aktuálně zobrazenou adresu URL obsahem vaší schránky.

    git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-models.git
    
  4. Přejděte do adresáře mslearn-tailspin-spacegame-web-models. Toto je kořenový adresář vašeho úložiště.

    cd mslearn-tailspin-spacegame-web-models
    

Otevřete projekt a prozkoumejte konfiguraci.

V editoru Visual Studio Code okno terminálu odkazuje na kořenový adresář mslearn-tailspin-spacegame-web-models projektu. Otevřete projekt z Průzkumníka souborů, abyste mohli zobrazit jeho strukturu a pracovat se soubory.

  1. Nejjednodušším způsobem, jak otevřít projekt, je znovu otevřít Visual Studio Code v aktuálním adresáři. Provedete to spuštěním následujícího příkazu z integrovaného terminálu:

    code -r .
    

    V Průzkumníku souborů se zobrazí adresář a strom souborů.

  2. Znovu otevřete integrovaný terminál. Terminál vás umístí do kořenového adresáře webového projektu.

  3. Otevřete soubor azure-pipelines.yml.

    Zobrazí se kroky, ve kterých se balíček sestaví, nastaví se verze a balíček se přidá do Azure Artifacts.

    Úkol DotNetCoreCLI@2 sestaví tento projekt:

    - task: DotNetCoreCLI@2
      displayName: 'Build the project - $(buildConfiguration)'
      inputs:
        command: 'build'
        arguments: '--no-restore --configuration $(buildConfiguration)'
        projects: '**/*.csproj'
    

    Tento DotNetCoreCLI@2 úkol zabalí projekt s verzí 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'
    

    Při vývoji balíčku je běžné používat schéma správy verzí byPrereleaseNumber. Tím se na konec čísla verze připojí jedinečná předběžná přípona, například -CI-20190621-042647. V následujícím příkladu by celé číslo verze bylo 1.0.0-CI-20190621-042647.

    Tato úloha NuGetCommand@2 odešle balíček do vašeho informačního kanálu Tailspin.SpaceGame.Web.Models Azure Artifacts.

    - task: NuGetCommand@2
      displayName: 'Publish NuGet package'
      inputs:
        command: push
        feedPublish: '$(System.TeamProject)/Tailspin.SpaceGame.Web.Models'
        allowPackageConflicts: true
      condition: succeeded()
    

    feedPublish určuje název informačního kanálu, do který se má publikovat. Formát názvu je <projectName>/<feedName>, kde:

    • $(System.TeamProject) je předdefinovaná proměnná, která odkazuje na název projektu; Například "Space Game - web - Dependencies".
    • Tailspin.SpaceGame.Web.Models je název informačního kanálu, který jste zadali v předchozím cvičení.

Nastavení oprávnění

Než budete moct nastavit a spustit svou pipeline, musíte službě Build udělit správná oprávnění.

  1. Přejděte ke svému projektu v Azure DevOps.
  2. V nabídce vlevo vyberte Artefakty.
  3. V pravém horním rohu obrazovky vyberte ikonu Nastavení a pak vyberte kartu Oprávnění.
  4. Vyberte tlačítko Přidat uživatele nebo skupiny.
  5. Do pole Uživatelé/skupiny zadejte Space Game - web - Dependencies Build Service, klikněte na roli Přispěvatel a klikněte na Uložit.

Vytvoření kanálu v Azure Pipelines

Dozvěděli jste se, jak nastavit Azure Pipelines v dřívějším modulu. Pokud potřebujete obnovení znalostí, přejděte na Vytvoření kanálu buildu pomocí služby Azure Pipelines.

Tady je postup, jak nastavit druhý kanál pro sestavení balíčku a nahrát ho do Azure Artifacts.

  1. V Azure DevOps přejděte na projekt Space Game – web – Závislosti.

  2. V nabídce vlevo vyberte Pipelines.

  3. Vyberte Nový kanál.

  4. Na kartě Připojit vyberte GitHub.

  5. Z karty Vyberte vyberte mslearn-tailspin-spacegame-web-models.

    Pokud se zobrazí výzva, zadejte svoje přihlašovací údaje GitHubu. Na zobrazené stránce se posuňte do dolní části a vyberte Schválit a nainstalovat.

  6. Na kartě Revize se zobrazí soubor azure-pipelines.yml nového kanálu.

  7. Vyberte Spustit.

  8. Sledujte běh potrubí.

  9. Přejděte na kartu Artefakty.

  10. V rozevíracím seznamu v horní části vyberte Tailspin.SpaceGame.Web.Models.

    snímek obrazovky znázorňující umístění balíčku z rozevíracího seznamu

    Ve službě Azure Artifacts se zobrazí výsledný balíček Tailspin.SpaceGame.Web.Models.

    snímek obrazovky balíčku v Azure Artifacts s verzí 1.0 balíčku.

  11. Výběrem balíčku přejděte na stránku podrobností. Potom zkopírujte číslo verze do umístění, kde k němu budete mít později snadný přístup.

    snímek obrazovky Azure Artifacts s podrobnostmi balíčku Zvýrazněná je číslo verze balíčku.

    Toto číslo verze použijete v další lekci.