Cvičení – vytvoření kanálu pro balíček

Dokončeno

Tady získáte nový kód týmu pro projekt Tailspin.SpaceGame.Web.Models , který je teď 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 informačním kanálu.

Jaké změny byly provedeny do projektu?

Vzpomeňte si, že web Space Game je aplikace ASP.NET Core. Model-View-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 modelové třídy do samostatné knihovny, aby je mohlo používat více projektů.

K tomu vytvoří nový projekt C# s názvem Tailspin.SpaceGame.Web.Models , který obsahuje pouze třídy modelu. Zároveň modelové třídy odebrali z existujícího projektu Tailspin.SpaceGame.Web. Modelové třídy v existujícím projektu nahradili odkazem na projekt Tailspin.SpaceGame.Web.Models.

K sestavení těchto projektů používají Andy a Mara dva kanály, pro každý projekt jeden. Vy už máte první projekt a jeho přidruženou konfiguraci Azure Pipelines. Tady vytvoříte fork druhého projektu na GitHubu a vytvoříte konfiguraci Azure Pipelines, která ji sestaví. Výsledný balíček publikujete do Azure Artifacts.

Příprava 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, ze kterého se nachází 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 projektu Tailspin.SpaceGame.Web.Models z GitHubu a nastavte Visual Studio Code, abyste mohli pracovat se soubory.

Vytvoření forku

Prvním krokem je vytvořit fork úložiště mslearn-tailspin-spacegame-web-models, abyste mohli pracovat se zdrojovými soubory a upravovat je. Připomínáme, že Mara umístila adresář Models do nového projektu a odebrala ho z webového projektu.

Vytvoření forku projektu mslearn-tailspin-spacegame-web-models na váš účet GitHub:

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

Místní klonování forku

Naklonování projektů mslearn-tailspin-spacegame-web-models 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 adresy URL, která se zobrazí, a zkopírujte adresu URL do schránky.

    Screenshot showing the URL and copy button from the GitHub repository.

  3. V editoru Visual Studio Code přejděte do okna terminálu a spusťte tento git clone příkaz. Nahraďte zobrazenou adresu URL obsahem 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ření projektu a kontrola konfigurace

V editoru Visual Studio Code okno terminálu odkazuje na kořenový adresář projektu mslearn-tailspin-spacegame-web-models . 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íkovi souborů se zobrazí stromová struktura adresářů a 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.

    Uvidíte kroky, kde podle kterých se sestaví balíček, nastaví verze a přidá balíček do Azure Artifacts.

    Tato úloha DotNetCoreCLI@2 sestaví projekt:

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

    Tato úloha DotNetCoreCLI@2 vytvoří balíček projektu 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žití schématu vytváření verzí byPrereleaseNumber. Tím se na konec čísla verze připojí jedinečná předběžná přípona, například -CI-20190621-042647. Podle tohoto příkladu je pak celé číslo verze 1.0.0-CI-20190621-042647.

    Tato úloha NuGetCommand@2 nasdílí balíček do projektu Tailspin.SpaceGame.Web.Models informačního kanálu 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 kanál, musíte službě sestavení 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. Vyberte ikonu Nastavení v pravém horním rohu obrazovky 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, vyberte roli Přispěvatel a vyberte Uložit.

Vytvoření kanálu v Azure Pipelines

V předchozím modulu jste se naučili, jak nastavit Azure Pipelines. Pokud potřebujete aktualizační nástroj, přejděte k vytvoření kanálu buildu pomocí 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 do projektu Space Game – web – Závislosti .

  2. V nabídce vlevo vyberte Kanály.

  3. Vyberte Nový kanál.

  4. Na kartě Connect (Připojit) vyberte GitHub.

  5. Na kartě Vybrat vyberte mslearn-tailspin-spacegame-web-models.

    Pokud se zobrazí výzva, zadejte svoje přihlašovací údaje GitHubu. Na stránce, která se zobrazí, se posuňte dolů a vyberte Schválit a nainstalovat.

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

  7. Vyberte Spustit.

  8. Sledujte průběh spuštění kanálu.

  9. Přejděte na kartu Artefakty .

  10. V rozevíracím seznamu nahoře vyberte Tailspin.SpaceGame.Web.Models.

    A screenshot showing the location of the package from the dropdown.

    Zobrazí se výsledný balíček Tailspin.SpaceGame.Web.Models v Azure Artifacts.

    A screenshot of the package in Azure Artifacts, showing version 1.0 of the package.

  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.

    A screenshot of Azure Artifacts showing package details. Highlighted is the version number for the package.

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