Oefening: een werkstroom maken voor een pull-aanvraag
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
Maak in Visual Studio Code een nieuw bestand met de naam pr-validation.yml in de map .github/workflows.
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.
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.
Sla uw wijzigingen op.
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.
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
Open het bestand main.bicep in de implementatiemap .
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.
Werk de
appServicePlan
resourcedefinitie bij. Voeg dekind
eigenschap en dereserved
eigenschap in hetproperties
object toe:resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = { name: appServicePlanName location: location sku: environmentConfigurationMap[environmentType].appServicePlan.sku kind: 'linux' properties: { reserved: true } }
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.Sla uw wijzigingen op.
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.
Selecteer Code in uw browser.
Selecteer twee vertakkingen om de lijst met vertakkingen in uw GitHub-opslagplaats te openen.
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 .
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.
Selecteer Pull-aanvraag maken.
De pagina met details van de pull-aanvraag wordt weergegeven.
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.
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
Selecteer In het deelvenster Statuscontrole details om het werkstroomlogboek te controleren.
Het logboek bevat dit bericht van bicep linter:
Error no-unused-vars: Variable "appServiceAppLinuxFrameworkVersion" is declared but never used.
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.Werk in de
appServiceApp
resourcedefinitie delinuxFxVersion
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 } } }
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
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.
Selecteer Pull-aanvraag samenvoegen om de pull-aanvraag te sluiten en de wijzigingen in de hoofdbranch samen te voegen.
Selecteer Samenvoegen bevestigen.