Oefening: een werkstroom maken voor een pull-aanvraag

Voltooid

Het ontwikkelteam van uw website heeft u gevraagd om de website bij te werken voor uitvoering op het Linux-besturingssysteem. In deze oefening voegt u een validatiewerkstroom toe die automatisch wordt uitgevoerd wanneer een pull-aanvraag wordt geopend of bijgewerkt. Vervolgens maakt u een pull-aanvraag voor de wijziging van het besturingssysteem van uw website.

Tijdens het proces gaat u het volgende doen:

  • Maak een werkstroom voor validatie van pull-aanvragen.
  • Bicep linting toevoegen aan de werkstroom.
  • Maak een pull-aanvraag en bekijk hoe de werkstroom wordt uitgevoerd.
  • Los eventuele fouten op die worden geïdentificeerd door de werkstroom voor validatie van pull-aanvragen.
  • Voer de werkstroom opnieuw uit en voeg de pull-aanvraag samen en sluit deze.

Een werkstroom maken die moet worden uitgevoerd wanneer pull-aanvragen worden gemaakt en bijgewerkt

  1. Maak in Visual Studio Code een nieuw bestand met de naam pr-validation.yml in de map .github/workflows.

    Schermopname van Visual Studio Code met het PR-validatiepunt YML-bestand in de map werkstromen.

  2. Voeg de volgende code toe aan het bestand:

    name: pr-validation
    
    on: pull_request
    

    Deze code zorgt ervoor dat de werkstroom wordt uitgevoerd wanneer een pull-aanvraag wordt gemaakt of bijgewerkt.

    Notitie

    U werkt rechtstreeks met de hoofdvertakking van uw opslagplaats. Normaal gesproken zou u dit niet doen, maar in deze oefening werkt u tegen de belangrijkste stappen om de stappen te vereenvoudigen. In uw eigen projecten is het belangrijk om vertakkingsbeveiligingsregels in te stellen om uw hoofdvertakking te beveiligen.

Een linttaak toevoegen aan uw werkstroom

Wanneer u een pull-aanvraag opent of bewerkt, wilt u een lintingstap uitvoeren voor uw Bicep-bestanden. Er is een herbruikbare lintwerkstroom in de opslagplaats die u vanuit deze werkstroom kunt aanroepen.

  1. Voeg aan het einde van de bestaande bestandsinhoud de lintwerkstroom die is gedefinieerd in uw opslagplaats opnieuw toe door de volgende regels toe te voegen:

    jobs:
      lint:
        uses: ./.github/workflows/lint.yml
    

    Uw opslagplaats heeft een bicepconfig.json-bestand waarmee de linter wordt geconfigureerd voor het verzenden van fouten in plaats van waarschuwingen, zodat eventuele fouten tijdens de linttaak ertoe leiden dat de werkstroom mislukt.

  2. Sla uw wijzigingen op.

  3. Voer uw wijzigingen door en push deze naar de hoofdbranch van uw Git-opslagplaats door de volgende opdrachten uit te voeren in de Visual Studio Code-terminal:

    git add .
    git commit -m "Add first version of pull request validation workflow"
    git push
    

Het Bicep-bestand bijwerken

Wijzig vervolgens het Bicep-bestand van uw website om het besturingssysteem van de website bij te werken naar Linux.

  1. Maak in de Visual Studio Code-terminal een nieuwe vertakking voor uw wijzigingen door de volgende opdracht uit te voeren:

    git checkout -b feature/linux-app
    
  2. Open het bestand main.bicep in de implementatiemap .

  3. Definieer boven aan het bestand, onder de variabeledefinities, een nieuwe variabele voor het toepassingsframework dat moet worden gebruikt:

    // Define the names for resources.
    var appServiceAppName = 'toy-website-linux-${resourceNameSuffix}'
    var appServicePlanName = 'toy-website-linux'
    var storageAccountName = 'mystorage${resourceNameSuffix}'
    
    var appServiceAppLinuxFrameworkVersion = 'node|14-lts'
    

    Deze instelling vertelt Azure-app Service dat de toepassing wordt gebouwd met versie 14 van het Node.js-framework.

  4. Werk de appServicePlan resourcedefinitie bij. Voeg de kind eigenschap en de reserved eigenschap in het properties object toe:

    resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = {
      name: appServicePlanName
      location: location
      sku: environmentConfigurationMap[environmentType].appServicePlan.sku
      kind: 'linux'
      properties: {
        reserved: true
      }
    }
    
  5. Werk de appServiceApp resourcedefinitie bij om het toepassingsframework in te stellen:

    resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
        siteConfig: {
          linuxFxVersion: 'node|14-lts'
        }
      }
    }
    

    Notitie

    U ziet mogelijk dat Bicep u waarschuwt dat u de appServiceAppLinuxFrameworkVersion variabele niet gebruikt. Hier veroorzaakt u opzettelijk een linterfout, zodat u kunt zien hoe deze eruitziet in de Pull-aanvraag van GitHub.

  6. Sla uw wijzigingen op.

  7. Voer uw wijzigingen door en push deze naar uw Git-opslagplaats door de volgende opdrachten uit te voeren in de Visual Studio Code-terminal:

    git add .
    git commit -m "Update operating system to Linux"
    git push origin feature/linux-app
    

Een pull-aanvraag maken

Nu de werkstroom is geconfigureerd en uw Bicep-bestand is bijgewerkt, kunt u een pull-aanvraag maken.

  1. Selecteer Code in uw browser.

  2. Selecteer twee vertakkingen om de lijst met vertakkingen in uw GitHub-opslagplaats te openen.

    Schermopname van GitHub met de vertakkingslijst van de opslagplaats.

    Vergelijken en pull-aanvraag wordt korte tijd weergegeven wanneer u wijzigingen naar vertakking pusht die nog geen open pull-aanvraag heeft. Het is een snelkoppeling naar de pagina Een pull-aanvraag openen .

  3. Selecteer naast de functie-/linux-app-vertakking nieuwe pull-aanvraag. Mogelijk moet u het pictogram Meer (...) selecteren om de optie Nieuwe pull-aanvraag weer te geven.

    Schermopname van GitHub met de koppeling voor het maken van een pull-aanvraag voor de functie-slash linux-app-vertakking.

  4. Selecteer Pull-aanvraag maken.

    Schermopname van het deelvenster 'Een pull-aanvraag openen' van GitHub, waarin de knop Pull-aanvraag maken wordt weergegeven.

    De pagina met details van de pull-aanvraag wordt weergegeven.

  5. Bekijk de sectie Controles van de details van de pull-aanvraag.

    Na een ogenblik ziet u dat er een automatische controle wordt geactiveerd. Tijdens de controle wordt de validatiewerkstroom voor pull-aanvragen uitgevoerd.

    Het kan enige tijd duren voordat de werkstroom wordt uitgevoerd. Vernieuw het browservenster totdat u de statuscontroles ziet.

    Wanneer de controle is voltooid, ziet u dat deze is mislukt.

    Schermopname van GitHub met de mislukte statuscontrole op de pagina met details van de pull-aanvraag.

    Notitie

    Met GitHub kunt u de pull-aanvraag samenvoegen, ook al zijn de statuscontroles mislukt. In een echte oplossing moet u een vertakkingsbeveiligingsregel configureren om te voorkomen dat een pull-aanvraag wordt samengevoegd totdat de statuscontroles zijn geslaagd.

De validatiefouten voor pull-aanvragen oplossen

  1. Selecteer In het deelvenster Statuscontrole details om het werkstroomlogboek te controleren.

    Schermopname van GitHub met het werkstroomlogboek, inclusief de validatiefout.

    Het logboek bevat dit bericht van bicep linter:

    Error no-unused-vars: Variable "appServiceAppLinuxFrameworkVersion" is declared but never used.
    
  2. Open in Visual Studio Code het bestand deploy/main.bicep .

    Op regel 20 is er een variabele met de naam appServiceAppLinuxFrameworkVersion. De variabele wordt niet gebruikt. Vervolgens lost u deze fout op.

  3. Werk in de appServiceApp resourcedefinitie de linuxFxVersion eigenschap bij om de variabele te gebruiken in plaats van de eigenschap in te stellen op de in code vastgelegde waarde:

    resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
        siteConfig: {
          linuxFxVersion: appServiceAppLinuxFrameworkVersion
        }
      }
    }
    
  4. Voer uw wijzigingen door in de Visual Studio Code-terminal en push ze naar de opslagplaats.

    git add .
    git commit -m "Fix Bicep file"
    git push origin feature/linux-app
    

De pull-aanvraag bewaken en samenvoegen

  1. Open de browser opnieuw op de pagina met details van de pull-aanvraag.

    De validatie van de pull-aanvraag wordt opnieuw uitgevoerd. Als de statuscontrole niet wordt uitgevoerd, vernieuwt u de pagina.

    Wacht tot de controle is voltooid. Deze keer lukt het. Er zijn geen syntaxis- of linterfouten in het Bicep-bestand, dus u kunt de pull-aanvraag samenvoegen.

  2. Selecteer Pull-aanvraag samenvoegen om de pull-aanvraag te sluiten en de wijzigingen in de hoofdbranch samen te voegen.

    Schermopname van GitHub met de knop Pull-aanvraag samenvoegen op de pagina met details van de pull-aanvraag.

  3. Selecteer Samenvoegen bevestigen.