Övning – Skapa en pipeline för ditt paket

Slutförd

Här får du teamets nya kod för projektet Tailspin.SpaceGame.Web.Models som nu är separat från projektet Tailspin.SpaceGame.Web . Du skapar ett Azure Pipelines-projekt för modellprojektet och ser artefakten i Azure Artifacts med versionsnumret 1.0.0 i flödet.

Vilka ändringar har gjorts i projektet?

Kom ihåg att Space Game-webbplatsen är en ASP.NET Core-app. Den använder MVC-mönstret (Model-View-Controller) för att skilja data från hur dessa data visas i användargränssnittet. Andy och Mara vill flytta modellklasserna till ett separat bibliotek så att flera projekt kan använda dessa klasser.

För att göra det skapar de ett nytt C#-projekt med namnet Tailspin.SpaceGame.Web.Models som endast innehåller modellklasserna. Samtidigt tar de bort modellklasserna från sitt befintliga projekt , Tailspin.SpaceGame.Web. De ersätter modellklasserna i sitt befintliga projekt med en referens till projektet Tailspin.SpaceGame.Web.Models .

För att skapa dessa projekt använder Andy och Mara två pipelines, en för varje projekt. Du har redan det första projektet och dess associerade Azure Pipelines-konfiguration. Här förgrenar du det andra projektet på GitHub och skapar en Azure Pipelines-konfiguration för att skapa det. Publicera det resulterande paketet till Azure Artifacts.

Förberedelse av Visual Studio Code

Tidigare har du konfigurerat Visual Studio Code för att arbeta med projektet Tailspin.SpaceGame.Web . Här öppnar du en andra instans av Visual Studio Code så att du kan arbeta med projektet Tailspin.SpaceGame.Web.Models .

  1. Öppna en andra instans av Visual Studio Code.

  2. Öppna den integrerade terminalen från Visual Studio Code.

  3. Gå till den överordnade katalogen där ditt mslearn-tailspin-spacegame-web-projekt finns. Här är ett exempel som flyttas till din hemkatalog:

    cd ~
    

Hämta källkoden

Hämta källkoden för projektet Tailspin.SpaceGame.Web.Models från GitHub och konfigurera Visual Studio Code så att du kan arbeta med filerna.

Skapa en förgrening

Det första steget är att förgrena lagringsplatsen mslearn-tailspin-spacegame-web-models så att du kan arbeta med och ändra källfilerna. Kom ihåg att Mara placerade katalogen Models i ett nytt projekt och tog bort den från webbprojektet.

Förgrena projektet mslearn-tailspin-spacegame-web-models till ditt GitHub-konto :

  1. Från en webbläsare går du till GitHub och loggar in.
  2. Gå till projektet mslearn-tailspin-spacegame-web-models .
  3. Välj Förgrening.
  4. Följ anvisningarna för att förgrena lagringsplatsen till ditt konto.

Klona din fork lokalt

Så här klonar du projekten mslearn-tailspin-spacegame-web-models till datorn:

  1. På GitHub går du till din förgrening av projektet mslearn-tailspin-spacegame-web-models .

  2. Välj Kod. På fliken HTTPS väljer du sedan knappen bredvid URL:en för att kopiera URL:en till Urklipp.

    Skärmbild som visar URL:en och kopieringsknappen från GitHub-lagringsplatsen.

  3. Från Visual Studio Code går du till terminalfönstret och kör det här kommandot git clone. Ersätt URL:en med innehållet i Urklipp.

    git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-models.git
    
  4. Flytta till katalogen mslearn-tailspin-spacegame-web-models . Den här platsen är rotkatalogen för lagringsplatsen.

    cd mslearn-tailspin-spacegame-web-models
    

Öppna projektet och granska konfigurationen

I Visual Studio Code pekar terminalfönstret på rotkatalogen för projektet mslearn-tailspin-spacegame-web-models . Öppna projektet från utforskaren så att du kan visa dess struktur och arbeta med filer.

  1. Det enklaste sättet att öppna projektet är att öppna Visual Studio Code igen i den aktuella katalogen. Det gör du genom att köra följande kommando från den integrerade terminalen:

    code -r .
    

    Du ser katalogen och filträdet i utforskaren.

  2. Öppna den integrerade terminalen igen. Terminalen placerar dig i roten för ditt webbprojekt.

  3. Öppna filen azure-pipelines.yml .

    Du ser stegen där paketet skapas, versionen anges och paketet läggs till i Azure Artifacts.

    Den här DotNetCoreCLI@2 uppgiften skapar projektet:

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

    Den här DotNetCoreCLI@2-uppgiften paketerar projektet i version 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'
    

    När du utvecklar ditt paket är det vanligt att använda byPrereleaseNumber versionsschema. Den här metoden lägger till ett unikt prerelease-suffix, till exempel -CI-20190621-042647 i slutet av versionsnumret. I det här exemplet skulle det fullständiga versionsnumret vara 1.0.0-CI-20190621-042647.

    Den här NuGetCommand@2 uppgiften skickar paketet till din Tailspin.SpaceGame.Web.Models Azure Artifacts-feed:

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

    feedPublish anger namnet på feeden som ska publiceras till. Namnets format är <projectName>/<feedName>, där:

    • $(System.TeamProject) är en fördefinierad variabel som refererar till projektnamnet, till exempel "Space Game - web - Dependencies".
    • Tailspin.SpaceGame.Web.Models är feednamnet som du angav i föregående övning.

Ange behörigheter

Innan du kan konfigurera och köra pipelinen måste du ge build-tjänsten rätt behörigheter.

  1. Gå till projektet i Azure DevOps.
  2. Välj Artefakter på menyn till vänster.
  3. Välj ikonen Inställningar längst upp till höger på skärmen och välj sedan fliken Behörigheter .
  4. Välj knappen Lägg till användare/grupper .
  5. I fältet Användare/grupper anger du Space Game – web – Dependencies Build Service, väljer rollen Deltagare och väljer Spara.

Skapa pipelinen i Azure Pipelines

Du har lärt dig hur du konfigurerar Azure Pipelines i en tidigare modul. Om du behöver en uppdatering går du till Skapa en byggpipeline med Azure Pipelines.

Så här konfigurerar du en andra pipeline för att skapa paketet och laddar upp paketet till Azure Artifacts.

  1. Från Azure DevOps går du till projektet Space Game – web – Dependencies .

  2. Välj Pipelines på menyn till vänster.

  3. Välj Ny pipeline.

  4. På fliken Anslut väljer du GitHub.

  5. På fliken Välj väljer du mslearn-tailspin-spacegame-web-models.

    Ange dina GitHub-autentiseringsuppgifter om du uppmanas att göra det. På sidan som visas bläddrar du längst ned och väljer Godkänn och installera.

  6. På fliken Granska ser du den nya pipelinens fil azure-pipelines.yml.

  7. Välj Kör.

  8. Titta på när rörledningen körs.

  9. Gå till fliken Artefakter .

  10. I listrutan längst upp väljer du Tailspin.SpaceGame.Web.Models.

    En skärmbild som visar paketets plats från listrutan.

    Du ser det resulterande paketet Tailspin.SpaceGame.Web.Models i Azure Artifacts.

    En skärmbild av paketet i Azure Artifacts som visar version 1.0 av paketet.

  11. Välj paketet för att gå till informationssidan. Kopiera sedan versionsnumret till en plats där du kan komma åt det senare.

    En skärmbild av Azure Artifacts som visar paketinformation. Markerat är versionsnumret för paketet.

    Använd det här versionsnumret i nästa enhet.