Gyakorlat – A folyamat létrehozása

Befejeződött

Mara ezen a ponton meghatározta a Space Game webhelyének buildkonfigurációját. Most Ön következik. Létre fog hozni egy folyamatot, és elő fogja állítani az első buildösszetevőt.

Mint látta, Mara egy YAML-fájlt használt a build definiálásához. Folyamat létrehozásakor a folyamat rákérdez a YAML-fájlra. A projekt még nem rendelkezik ezzel a fájllal.

Ha nem ad meg kezdeti YAML-fájlt a projekthez, az Azure Pipelines létrehozhat egyet az alkalmazás típusa alapján. Itt egy ASP.NET Core-alkalmazást fog létrehozni, de az Azure Pipelines kezdő buildkonfigurációkat is biztosít más projekttípusokhoz, például a Java- és Go-alkalmazásokhoz.

A folyamat létrehozása

  1. Az Azure DevOpsban nyissa meg a projektet.

  2. A projektlapon vagy a bal oldali panelen válassza a Folyamatok lehetőséget.

  3. Válassza a Folyamat létrehozása (vagy Új folyamat , ha nem ez az első folyamat a projektben).

  4. A Csatlakozás lapon válassza a GitHubot.

    Amikor a rendszer kéri, adja meg a GitHubon beállított hitelesítő adatait.

  5. A Kiválasztás lapon válassza ki az mslearn-tailspin-spacegame-web adattárat.

  6. Az Azure Pipelines alkalmazás telepítéséhez előfordulhat, hogy a rendszer átirányítja a GitHubra. Ha igen, görgessen az aljára, és válassza a Jóváhagyás > Telepítés lehetőséget.

  7. A Konfigurálás lapon válassza a ASP.NET Core lehetőséget.

    Megjegyzés:

    Ha nem látja ezt a beállítást, válassza a Továbbiak megjelenítése lehetőséget. Ne válassza ASP.NET Core (.NET-keretrendszer) lehetőséget.

    Screenshot of locating ASP.NET Core from the list of provided application types.

  8. A Véleményezés lapon jegyezze fel a kezdeti buildkonfigurációt.

    Screenshot of Azure Pipelines showing the initial build configuration.

    Ez egy nagyon alapszintű konfiguráció, amelyet az Azure DevOps biztosít az alkalmazás típusa, ASP.NET Core alapján. Az alapértelmezett konfiguráció egy Microsoft által üzemeltetett ügynököt használ.

    Cserélje le a szöveget vmImage: ubuntu-latestname: Default (vagy az ügynökkészlet nevét, ha a Codespaces-adattár titkos kulcsainak beállításakor más készletet adott meg).

  9. A Véleményezés lapon válassza a Mentés és futtatás lehetőséget. Ha véglegesíteni szeretné a módosításokat a GitHubon, és elindítja a folyamatot, válassza a Véglegesítés lehetőséget közvetlenül a főágban , majd válassza a Mentés és futtatás lehetőséget. Ha a rendszer egy ilyen This pipeline needs permission to access a resource before this run can continueüzenettel kéri az engedély megadását, válassza a Nézet lehetőséget , és kövesse az utasításokat a hozzáférés engedélyezéséhez.

Kísérje figyelemmel a folyamat futását

A Feladatok csoportban válassza a Feladat lehetőséget. Ezután kövesse nyomon a buildelési folyamatot az egyes lépéseken keresztül. Ha a feladat kimenetét szöveges fájlként szeretné megjeleníteni a build befejezésekor, a Nyers napló megtekintése lehetőséget is választhatja.

Ha a folyamat nem indul el gyorsan, ellenőrizze, hogy a Kódterek még futnak-e. A kódterek 30 perc elteltével leállnak, és előfordulhat, hogy újra kell indítani.

Ha a folyamat állapota várólistán marad, és néhány pillanat múlva nem vált futásra, ellenőrizze a párhuzamos feladatokat, és kérjen ingyenes támogatást. Ha nem fér hozzá a párhuzamos feladatokhoz, a modult újrakezdheti a Codespaces használatával.

Itt láthatja a builddefiníció által létrehozott lépéseket. Előkészíti a virtuális gépet, lekéri a legújabb forráskódot a GitHubról, majd létrehozza az alkalmazást.

Screenshot of Azure Pipelines showing output from the initial build configuration.

Ez a konfiguráció nagyszerű kiindulópont, mert most már van egy hely a buildelési feladatok hozzáadására. Azonban frissíteni kell, hogy megfeleljen a Tailspin-csapat igényeinek, például a JavaScript- és CSS-fájlok minify-jének.

Tipp.

Nézze meg az e-mailjeit. Lehet, hogy már kapott buildértesítést a futtatás eredményeivel. Ezekkel az értesítésekkel tudathatja a csapattagokkal, hogy mikor fejeződtek be a buildek, és hogy az egyes buildek sikeresek vagy sikertelenek-e.

Buildfeladatok hozzáadása

Most, hogy már működik a buildelési folyamat, megkezdheti a buildelési feladatok hozzáadását.

Ne feledje, hogy az main ágból dolgozik. A munka megtartásához most létre kell hoznia egy ágat .build-pipeline Az ág lehetővé teszi a kísérletezést, és a build teljes működését anélkül, hogy a csapat többi tagját érintené.

Az Azure Pipelinesból közvetlenül hozzáadhat buildfeladatokat az azure-pipelines.yml fájlhoz. Az Azure Pipelines közvetlenül az ágban véglegesíti a kívánt módosításokat. Itt helyileg módosítja az Azure-Pipelines.yml fájlt, és leküldi vagy feltölti a módosításokat a GitHubra. Ezzel a módszerrel gyakorolhatja Git-készségeit. Figyelje meg, hogy a folyamat automatikusan létrehozza az alkalmazást a módosítások leküldésekor.

A gyakorlatban egyesével adhat hozzá buildelési feladatokat, leküldheti a módosításokat, és figyelheti a buildfuttatást. Itt hozzáadja az összes korábban azonosított buildelési feladatot.

Megjegyzés:

Néhány Git-parancsot fog futtatni. Ne aggódjon, ha még csak most ismerkedik a Git-dzsel. Megmutatjuk, mit kell tennie. A Gitről a jövőbeni modulokban részletesebben is megismerkedünk.

  1. A Visual Studio Code-ban lépjen az integrált terminálra. Győződjön meg arról, hogy az main adattárban található ágra lép, majd végighalad a lépéseken.

  2. A GitHub legújabb módosításainak lekéréséhez és az ág frissítéséhez main futtassa ezt a git pull parancsot.

    git pull origin main
    

    A kimenetből láthatja, hogy a Git lekéri az azure-pipelines.yml nevű fájlt. Ez az Azure Pipelines által létrehozott kezdőfolyamat-konfiguráció. A folyamat beállításakor az Azure Pipelines hozzáadja ezt a fájlt a GitHub-adattárhoz.

  3. Egy elnevezett build-pipelineág létrehozásához futtassa ezt a git checkout parancsot:

    git checkout -B build-pipeline
    
  4. A Visual Studio Code-ban módosítsa az azure-pipelines.yml-t az itt látható módon:

    trigger:
    - '*'
    
    pool:
      name: 'Default' # Replace Default with the name of your agent pool if you used a different pool
    
    variables:
      buildConfiguration: 'Release'
    
    steps:
    - task: UseDotNet@2
      displayName: 'Use .NET SDK 6.x'
      inputs:
        packageType: sdk
        version: '6.x'
    
    - task: Npm@1
      displayName: 'Run npm install'
      inputs:
        verbose: false
    
    - script: './node_modules/.bin/node-sass Tailspin.SpaceGame.Web/wwwroot --output Tailspin.SpaceGame.Web/wwwroot'
      displayName: 'Compile Sass assets'
    
    - task: gulp@1
      displayName: 'Run gulp tasks'
    
    - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt'
      displayName: 'Write build info'
      workingDirectory: Tailspin.SpaceGame.Web/wwwroot
    
    - task: DotNetCoreCLI@2
      displayName: 'Restore project dependencies'
      inputs:
        command: 'restore'
        projects: '**/*.csproj'
    
    - task: DotNetCoreCLI@2
      displayName: 'Build the project - Release'
      inputs:
        command: 'build'
        arguments: '--no-restore --configuration Release'
        projects: '**/*.csproj'
    
    trigger:
    - '*'
    
    pool:
      vmImage: ubuntu-latest
    
    variables:
      buildConfiguration: 'Release'
    
    steps:
    - task: UseDotNet@2
      displayName: 'Use .NET SDK 6.x'
      inputs:
        packageType: sdk
        version: '6.x'
    
    - task: Npm@1
      displayName: 'Run npm install'
      inputs:
        verbose: false
    
    - script: './node_modules/.bin/node-sass Tailspin.SpaceGame.Web/wwwroot --output Tailspin.SpaceGame.Web/wwwroot'
      displayName: 'Compile Sass assets'
    
    - task: gulp@1
      displayName: 'Run gulp tasks'
    
    - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt'
      displayName: 'Write build info'
      workingDirectory: Tailspin.SpaceGame.Web/wwwroot
    
    - task: DotNetCoreCLI@2
      displayName: 'Restore project dependencies'
      inputs:
        command: 'restore'
        projects: '**/*.csproj'
    
    - task: DotNetCoreCLI@2
      displayName: 'Build the project - Release'
      inputs:
        command: 'build'
        arguments: '--no-restore --configuration Release'
        projects: '**/*.csproj'
    

    A szakaszban láthatja azokat a steps buildelési feladatokat, amelyek megfeleltetik a korábban azonosított szkriptparancsok mindegyikét.

    Az Azure Pipelines beépített buildelési feladatokat biztosít, amelyek számos gyakori buildelési tevékenységhez megfeleltethetőek. A DotNetCoreCLI@2 feladat például a dotnet parancssori segédprogramot képezi le. A folyamat kétszer használja DotNetCoreCLI@2 a projekt függőségeinek visszaállítását vagy telepítését, és egyszer a projekt összeállítását.

    Ne feledje, hogy nem minden buildelési tevékenység van egy beépített feladathoz rendelve. Nincs például olyan beépített feladat, amely futtatja a node-Sass segédprogramot, vagy buildadatokat ír egy szövegfájlba. Általános rendszerparancsok futtatásához használja a CmdLine@2 vagy a script feladatot. A folyamat a script feladatot használja, mert az közös parancsikont nyújt a következőhöz: CmdLine@2.

    A buildelési lépésben, amely adatokat ír a buildről egy fájlba, figyelje meg az alábbi elemeket:

    • $(Build.DefinitionName)
    • $(Build.BuildId)
    • $(Build.BuildNumber)

    Ezek az elemek olyan beépített változók, amelyeket a rendszer biztosít a folyamatokban való használatra:

    • $(Build.DefinitionName) a buildelési folyamat neve. Például: "SpaceGame-Web-CI".
    • $(Build.BuildId) a kész build numerikus azonosítója, például 115.
    • $(Build.BuildNumber) a befejezett build neve. Konfigurálhatja a formátumot, de alapértelmezés szerint a buildszám tartalmazza az aktuális dátumot, majd az adott nap buildszámát. Példa buildszám: "20190329.1".

    Saját változókat is meghatározhat, amelyeket hamarosan elvégezhet.

    Előfordulhat, hogy észrevette a UseDotNet@2 feladatot is, amely az első buildelési lépés. Mara emlékeztetett arra, hogy a buildszkript nem telepítette a szükséges buildelési eszközöket. Bár a buildügynök több .NET SDK-verzióval is rendelkezik, ez a feladat lehetővé teszi a folyamat szerzőjének, hogy egyszerűen adja meg a buildügynökön használni kívánt verziót.

  5. Az integrált terminálról az azure-pipelines.yml indexhez való hozzáadásához véglegesítse a módosítást, és küldje el a módosítást a GitHubra, futtassa az alábbi Git-parancsokat. Ezek a lépések hasonlóak a korábban végrehajtott lépésekhez.

    Tipp.

    A Git-parancsok futtatása előtt ne felejtse el menteni az azure-pipelines.yml fájlt.

    git add azure-pipelines.yml
    git commit -m "Add build tasks"
    git push origin build-pipeline
    

    Ezúttal, a build-pipeline ágat küldje a GitHubba, és ne a main ágat.

    Az ág GitHubba küldése elindítja a buildfolyamatot az Azure Pipelinesban.

  6. Az Azure Pipelinesban nyissa meg a buildet. Ehhez a lap oldalán válassza a Folyamatok lehetőséget, majd válassza ki a folyamatot. Ekkor megjelenik a véglegesítési üzenet, és hogy a build az ág kódját build-pipeline használja.

    Screenshot of Azure Pipelines showing the run history, including the branch you recently pushed to GitHub.

    Tipp.

    Ha nem látja azonnal a buildet, várjon néhány percet, vagy frissítse az oldalt.

  7. Válassza ki a buildet, és válassza a Feladatok lehetőséget, és futtassa a buildelési feladatokat.

    Például a következő történik, amikor a feladat fut gulp@1 a JavaScript- és CSS-objektumokat minifikáló gulp-feladatok végrehajtásához:

    Screenshot of tracing the gulp tasks in Azure Pipelines.

    Ha bármelyik lépés meghiúsul, a kimenetben megjelenik a hiba, így diagnosztizálhatja és kijavíthatja a hibát.

    Korábban egy minimálisabb buildkonfigurációt futtatott. Ezúttal, amikor a buildelés befejeződött, az alkalmazás létrehozásához szükséges feladatok teljesebb készlete jelenik meg.

    Screenshot of Azure Pipelines showing the complete list of build tasks.

  8. A build befejezése után válassza ki az összes lépést a build általános előrehaladásának megtekintéséhez. Innen a buildnaplókra vagy a GitHubon a kapcsolódó módosításra ugorhat.

    Screenshot of Azure Pipelines showing the complete list of build tasks. The Run gulp task is selected.