Dela via


Självstudie: Distribuera miljöer i CI/CD med hjälp av GitHub- och Azure Deployment Environments

I den här självstudien får du lära dig hur du integrerar Azure Deployment Environments i din CI/CD-pipeline. Du kan använda valfri GitOps-provider som stöder CI/CD, till exempel GitHub Actions, Azure Arc, GitLab eller Jenkins.

Kontinuerlig integrering och kontinuerlig leverans (CI/CD) är en metod för programvaruutveckling som hjälper team att automatisera processen med att skapa, testa och distribuera programvaruändringar. MED CI/CD kan du släppa programändringar oftare och med större förtroende.

Du använder ett arbetsflöde som har tre grenar: main, dev och test.

  • Huvudgrenen betraktas alltid som produktion.
  • Du skapar funktionsgrenar från huvudgrenen.
  • Du skapar pull-begäranden för att sammanfoga funktionsgrenar till main.

Det här arbetsflödet är ett litet exempel i den här självstudien. Verkliga arbetsflöden kan vara mer komplexa.

Innan du påbörjar den här självstudien kan du bekanta dig med resurser och begrepp för distributionsmiljöer genom att granska viktiga begrepp för Azure-distributionsmiljöer.

I den här självstudien lär du dig att:

  • Skapa och konfigurera ett utvecklingscenter
  • Skapa ett nyckelvalv
  • Skapa och konfigurera en GitHub-lagringsplats
  • Anslut katalogen till utvecklingscentret
  • Konfigurera distributionsidentiteter
  • Konfigurera GitHub-miljöer
  • Testa CI/CD-pipelinen

Förutsättningar

1. Skapa och konfigurera ett utvecklingscenter

I det här avsnittet skapar du ett Utvecklingscenter för Azure Deployment Environments och ett projekt med tre miljötyper: Dev, Test och Prod.

  • Miljötypen Prod innehåller den enskilda produktionsmiljön.
  • En ny miljö skapas i Dev för varje funktionsgren.
  • En ny miljö skapas i Test för varje pull-begäran.

1.1 Konfigurera Azure CLI

Börja genom att logga in på Azure. Kör följande kommando och följ anvisningarna för att slutföra autentiseringsprocessen.

az login

Installera sedan Azure devcenter-tillägget för Azure CLI.

az extension add --name devcenter --upgrade

Nu när det aktuella tillägget har installerats registrerar du Microsoft.DevCenter namnområdet.

az provider register --namespace Microsoft.DevCenter

Dricks

I den här självstudien sparar du flera värden som miljövariabler som ska användas senare. Du kanske också vill registrera det här värdet någon annanstans för att säkerställa att de är tillgängliga när det behövs.

Hämta användarens ID och ange det till en miljövariabel för senare:

MY_AZURE_ID=$(az ad signed-in-user show --query id -o tsv)

Hämta prenumerations-ID:t för din aktuella prenumeration.

AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

Hämta klientorganisations-ID:t för din aktuella klientorganisation.

AZURE_TENANT_ID=$(az account show --query tenantId --output tsv)

Ange följande miljövariabler:

LOCATION="eastus"
AZURE_RESOURCE_GROUP=<resourceGroupName>
AZURE_DEVCENTER=<devcenterName>
AZURE_PROJECT=<projectName>
AZURE_KEYVAULT=<keyVaultName>

Kommentar

Du måste använda ett globalt unikt nyckelvalvnamn. Annars kan du få följande fel: Code: VaultAlreadyExists Message: The vault name 'mykeyvaultname' is already in use. Vault names are globally unique so it is possible that the name is already taken.

1.2 Skapa ett utvecklingscenter

Ett utvecklingscenter är en samling projekt och miljöer som har liknande inställningar. Dev Centers ger åtkomst till en katalog med mallar och artefakter som kan användas för att skapa miljöer. Dev centers ger också ett sätt att hantera åtkomst till miljöer och projekt.

Skapa en resursgrupp.

az group create \
  --name $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Skapa ett nytt utvecklingscenter.

az devcenter admin devcenter create \
  --name $AZURE_DEVCENTER \
  --identity-type SystemAssigned \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Föregående kommando matar ut JSON. Spara värdena för id och identity.principalId som miljövariabler som ska användas senare.

AZURE_DEVCENTER_ID=<id>
AZURE_DEVCENTER_PRINCIPAL_ID=<identity.principalId>

1.3 Tilldela rollen dev center-identitetsägare i prenumerationen

Ett utvecklingscenter behöver behörigheter för att tilldela roller för prenumerationer som är associerade med miljötyper.

För att minska onödig komplexitet använder du i den här självstudien en enda prenumeration för utvecklingscentret och alla miljötyper. I praktiken skulle dev center- och måldistributionsprenumerationer sannolikt vara separata prenumerationer med olika principer som tillämpas.

az role assignment create \
  --scope /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --role Owner \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

1.4 Skapa miljötyperna

På utvecklingscenternivå definierar miljötyper de miljöer som utvecklingsteam kan skapa, till exempel utveckling, testning, sandbox-miljö, förproduktion eller produktion.

Skapa tre nya miljötyper: Dev, Test och Prod.

az devcenter admin environment-type create \
  --name Dev \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Test \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Prod \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER

1.5 Skapa ett projekt

Ett projekt är åtkomstpunkten för utvecklingsteamet. Varje projekt är associerat med ett utvecklingscenter.

Skapa ett nytt projekt.

az devcenter admin project create \
  --name $AZURE_PROJECT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --dev-center-id $AZURE_DEVCENTER_ID

Föregående kommando matar ut JSON. Spara värdet id som en miljövariabel som ska användas senare.

AZURE_PROJECT_ID=<id>

Tilldela dig själv rollen DevCenter-projektadministratör i projektet.

az role assignment create \
  --scope "$AZURE_PROJECT_ID" \
  --role "DevCenter Project Admin" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

1.6 Skapa projektmiljötyper

På projektnivå anger plattformstekniker vilka miljötyper som är lämpliga för utvecklingsteamet.

Skapa en ny projektmiljötyp för var och en av de miljötyper som du skapade i utvecklingscentret.

az devcenter admin project-environment-type create \
  --name Dev \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Test \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Prod \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled

2. Skapa ett nyckelvalv

I det här avsnittet skapar du ett nytt nyckelvalv. Du använder det här nyckelvalvet senare i självstudien för att spara en personlig åtkomsttoken från GitHub.

az keyvault create \
  --name $AZURE_KEYVAULT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --enable-rbac-authorization true

id Spara återigen från föregående kommandos JSON-utdata som en miljövariabel.

AZURE_KEYVAULT_ID=<id>

Ge dig själv rollen Key Vault-administratör i det nya nyckelvalvet.

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Administrator" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

Tilldela dev center-identiteten rollen Key Vault Secrets User.

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Secrets User" \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

3. Skapa och konfigurera en GitHub-lagringsplats

I det här avsnittet skapar du en ny GitHub-lagringsplats för att lagra en katalog. Azure Deployment Environments stöder både GitHub- och Azure DevOps-lagringsplatser. I den här självstudien använder du GitHub.

3.1 Skapa en ny GitHub-lagringsplats

I det här steget skapar du en ny lagringsplats i ditt GitHub-konto som har en fördefinierad katalogstruktur, grenar och filer. Dessa objekt genereras från en exempelmalllagringsplats.

  1. Använd den här länken för att generera en ny GitHub-lagringsplats från exempelmallen.

    Screenshot showing the GitHub create repository from template page.

  2. Om du inte har ett betalt GitHub-konto anger du lagringsplatsen till Offentlig.

  3. Välj Create repository from template (Skapa lagringsplats från mall).

  4. Observera att åtgärden Skapa miljö misslyckas på fliken Åtgärder . Det här beteendet förväntas. Du kan fortsätta med nästa steg.

3.2 Skydda lagringsplatsens huvudgren

Du kan skydda viktiga grenar genom att ange regler för grenskydd. Skyddsregler definierar om medarbetare kan ta bort eller tvinga fram push-överföring till grenen. De ställer också in krav för alla push-överföringar till grenen, till exempel att skicka statuskontroller eller en linjär incheckningshistorik.

Kommentar

Skyddade grenar är tillgängliga på offentliga lagringsplatser med GitHub Free och GitHub Free för organisationer och i offentliga och privata lagringsplatser med GitHub Pro, GitHub Team, GitHub Enterprise Cloud och GitHub Enterprise Server. Mer information finns i GitHubs produkter.

  1. Om den inte redan är öppen går du till huvudsidan för lagringsplatsen.

  2. Under namnet på lagringsplatsen väljer du Inställningar. Om du inte kan se fliken Inställningar väljer du listrutan ... och väljer sedan Inställningar.

    Screenshot showing the GitHub repository page with settings highlighted.

  3. I avsnittet Kod och automatisering i sidofältet väljer du Grenar.

    Screenshot showing the settings page, with branches highlighted.

  4. Under Grenskyddsregler väljer du Lägg till grenskyddsregel.

    Screenshot showing the branch protection rule page, with Add branch protection rule highlighted.

  5. Under Mönster för grennamn anger du main.

    Screenshot showing the branch name pattern text box, with main highlighted.

  6. Under Skydda matchande grenar väljer du Kräv en pull-begäran innan sammanslagning.

    Screenshot showing protect matching branches with Require a pull request before merging selected and highlighted.

  7. Du kan också aktivera fler skyddsregler.

  8. Välj Skapa.

3.3 Konfigurera lagringsplatsvariabler

Kommentar

Konfigurationsvariabler för GitHub Actions är i betaversion och kan komma att ändras.

  1. I avsnittet Säkerhet i sidofältet väljer du Hemligheter och variabler och sedan Åtgärder.

    Screenshot showing the Security section of the sidebar with Actions highlighted.

  2. Välj fliken Variabler.

  3. För varje objekt i tabellen:

    1. Välj Ny lagringsplatsvariabel.
    2. I fältet Namn anger du variabelnamnet.
    3. I fältet Värde anger du det värde som beskrivs i tabellen.
    4. Välj Lägg till variabel.
    Variabelnamn Variabelvärde
    AZURE_DEVCENTER Ditt dev center-namn
    AZURE_PROJECT Projektnamnet
    AZURE_CATALOG Ange till "Miljöer"
    AZURE_CATALOG_ITEM Ange till "FunctionApp"
    AZURE_SUBSCRIPTION_ID Ditt Azure-prenumerations-ID
    AZURE_TENANT_ID Ditt Azure-klient-ID

    Screenshot showing the variables page with the variables table.

3.4 Skapa en personlig Åtkomsttoken för GitHub

Skapa sedan en detaljerad personlig åtkomsttoken för att aktivera ditt Azure Deployment Environments dev center för att ansluta till lagringsplatsen och använda miljökatalogen.

Kommentar

Detaljerad personlig åtkomsttoken är för närvarande i betaversion och kan komma att ändras. Om du vill lämna feedback kan du läsa feedbackdiskussionen.

  1. I det övre högra hörnet på en sida på GitHub.com väljer du ditt profilfoto och väljer sedan Inställningar.

  2. I det vänstra sidofältet väljer du Inställningar för utvecklare.

  3. I det vänstra sidofältet går du till Personliga åtkomsttoken, väljer Detaljerade token och väljer sedan Generera ny token.

    Screenshot showing the GitHub personal access token options, with Fine-grained tokens and Generate new token highlighted.

  4. På sidan Ny detaljerad personlig åtkomsttoken under Tokennamn anger du ett namn för token.

  5. Under Förfallodatum väljer du ett förfallodatum för token.

  6. Välj din GitHub-användare under Resursägare.

  7. Under Lagringsplatsåtkomst väljer du Endast lagringsplatser och sedan i listrutan Valda lagringsplatser söker du efter och väljer den lagringsplats som du skapade.

    Screenshot showing GitHub repository access options, with Only select repositories highlighted.

  8. Under Behörigheter väljer du Lagringsplatsbehörigheter och ändrar Innehållet till Skrivskyddat.

    Screenshot showing GitHub repository permissions with Contents highlighted.

  9. Välj Generera token.

  10. Kopiera och spara din personliga åtkomsttoken nu. Du kan inte visa den igen.

3.5 Spara din personliga åtkomsttoken i nyckelvalvet

Spara sedan den personliga åtkomsttoken som en nyckelvalvshemlighet med namnet pat.

az keyvault secret set \
    --name pat \
    --vault-name $AZURE_KEYVAULT \
    --value <personalAccessToken>

4. Anslut katalogen till utvecklingscentret

I Azure Deployment Environments är en katalog en lagringsplats som innehåller en uppsättning miljödefinitioner. Katalogobjekt består av en IaC-mall (infrastruktur som kod) och en miljöfil som fungerar som ett manifest. Mallen definierar miljön och miljöfilen innehåller metadata om mallen. Utvecklingsteam använder miljödefinitioner från katalogen för att skapa miljöer.

Mallen som du använde för att skapa din GitHub-lagringsplats innehåller en katalog i mappen Miljöer .

Lägg till katalogen i utvecklingscentret

I följande kommando ersätter du < Organization/Repository > med github-organisationen och lagringsplatsens namn.

az devcenter admin catalog create \
    --name Environments \
    --resource-group $AZURE_RESOURCE_GROUP \
    --dev-center $AZURE_DEVCENTER \
    --git-hub path="/Environments" branch="main" secret-identifier="https://$AZURE_KEYVAULT.vault.azure.net/secrets/pat" uri="https://github.com/< Organization/Repository >.git"

5. Konfigurera distributionsidentiteter

OpenID Anslut med GitHub Actions är en autentiseringsmetod som använder kortlivade token för att erbjuda förstärkt säkerhet. Det är det rekommenderade sättet att autentisera GitHub Actions till Azure.

Du kan också autentisera ett huvudnamn för tjänsten direkt med hjälp av en hemlighet, men det är utanför omfånget för den här självstudien.

5.1 Generera distributionsidentiteter

  1. Registrera Microsoft Entra-program och tjänstens huvudnamn för var och en av de tre miljötyperna.

    Skapa Microsoft Entra-programmet för Dev.

    az ad app create --display-name "$AZURE_PROJECT-Dev"
    

    Det här kommandot matar ut JSON med ett id som du använder när du skapar federerade autentiseringsuppgifter med Graph API och ett appId (kallas även klient-ID).

    Ange följande miljövariabler:

    DEV_AZURE_CLIENT_ID=<appId>
    DEV_APPLICATION_ID=<id>
    

    Upprepa för test.

    az ad app create --display-name "$AZURE_PROJECT-Test"
    
    TEST_AZURE_CLIENT_ID=<appId>
    TEST_APPLICATION_ID=<id>
    

    Och för Prod.

    az ad app create --display-name "$AZURE_PROJECT-Prod"
    
    PROD_AZURE_CLIENT_ID=<appId>
    PROD_APPLICATION_ID=<id>
    
  2. Skapa ett huvudnamn för tjänsten för varje program.

    Kör följande kommando för att skapa ett nytt huvudnamn för tjänsten för Dev.

     az ad sp create --id $DEV_AZURE_CLIENT_ID
    

    Det här kommandot genererar JSON-utdata med en annan id och används i nästa steg.

    Ange följande miljövariabler:

    DEV_SERVICE_PRINCIPAL_ID=<id>
    

    Upprepa för test.

     az ad sp create --id $TEST_AZURE_CLIENT_ID
    
    TEST_SERVICE_PRINCIPAL_ID=<id>
    

    Och för Prod.

     az ad sp create --id $PROD_AZURE_CLIENT_ID
    
    PROD_SERVICE_PRINCIPAL_ID=<id>
    
  3. Kör följande kommandon för att skapa en ny federerad identitetsautentisering för varje Active Directory-program.

    I vart och ett av följande tre kommandon ersätter du < Organization/Repository > med din GitHub-organisation och lagringsplatsnamn.

    Skapa den federerade identitetsautentiseringsuppgiften för Dev.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$DEV_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEDev","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Dev","description":"Dev","audiences":["api://AzureADTokenExchange"]}'
    

    För test.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$TEST_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADETest","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Test","description":"Test","audiences":["api://AzureADTokenExchange"]}'
    

    Och för Prod.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$PROD_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEProd","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Prod","description":"Prod","audiences":["api://AzureADTokenExchange"]}'
    

5.2 Tilldela roller till distributionsidentiteter

  1. Tilldela varje distributionsidentitet rollen Läsare i projektet.

    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
  2. Tilldela varje distributionsidentitet rollen Distributionsmiljöer Användarroll till motsvarande miljötyp.

    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Dev" \
        --role "Deployment Environments User" \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Test" \
        --role "Deployment Environments User" \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Prod" \
        --role "Deployment Environments User" \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    

6. Konfigurera GitHub-miljöer

Med GitHub-miljöer kan du konfigurera miljöer med skyddsregler och hemligheter. Ett arbetsflödesjobb som refererar till en miljö måste följa alla skyddsregler för miljön innan du kör eller får åtkomst till miljöns hemligheter.

Skapa dev-, test- och prod-miljöer som mappar till miljötyperna i Azure Deployment Environments-projektet.

Kommentar

Miljöer, miljöhemligheter och miljöskyddsregler är tillgängliga på offentliga lagringsplatser för alla produkter. För åtkomst till miljöer, miljöhemligheter och distributionsgrenar i privata eller interna lagringsplatser måste du använda GitHub Pro, GitHub Team eller GitHub Enterprise. För åtkomst till andra miljöskyddsregler i privata eller interna lagringsplatser måste du använda GitHub Enterprise. Mer information finns i GitHubs produkter.

6.1 Skapa Dev-miljön

  1. På GitHub navigerar du till huvudsidan för lagringsplatsen.

  2. Under namnet på lagringsplatsen väljer du Inställningar. Om du inte kan se fliken Inställningar väljer du listrutan ... och väljer sedan Inställningar.

  3. I det vänstra sidofältet väljer du Miljöer.

  4. Välj Ny miljö och ange Dev som miljönamn och välj sedan Konfigurera miljö.

    Screenshot showing the Environments Add pane, with the environment name Dev, and Configure Environment highlighted.

  5. Under Miljöhemligheter väljer du Lägg till hemlighet och anger AZURE_CLIENT_ID som Namn.

    Screenshot showing the Environment Configure Dev pane, with Add secret highlighted.

  6. Som Värde anger du klient-ID (appId) för *Dev**Microsoft Entra-appen som du skapade tidigare (sparad som $DEV_AZURE_CLIENT_ID miljövariabel).

    Screenshot of the Add secret box with the name AZURE CLIENT ID, the value set to an ID number, and add secret highlighted.

  7. Välj Add secret (Lägg till hemlighet).

6.2 Skapa testmiljön

Gå tillbaka till huvudmiljösidan genom att välja Miljöer i det vänstra sidofältet.

  1. Välj Ny miljö och ange Test för miljönamnet och välj sedan Konfigurera miljö.

  2. Under Miljöhemligheter väljer du Lägg till hemlighet och anger AZURE_CLIENT_ID som Namn.

  3. Som Värde anger du klient-ID :t (appId) för testappen Microsoft Entra som du skapade tidigare (sparad som $TEST_AZURE_CLIENT_ID miljövariabel).

  4. Välj Add secret (Lägg till hemlighet).

6.3 Skapa Prod-miljön

Gå tillbaka till huvudmiljösidan igen genom att välja Miljöer i det vänstra sidofältet

  1. Välj Ny miljö och ange Prod som miljönamn och välj sedan Konfigurera miljö.

  2. Under Miljöhemligheter väljer du Lägg till hemlighet och anger AZURE_CLIENT_ID som Namn.

  3. Som Värde anger du klient-ID :t (appId) för Prod Microsoft Entra-appen som du skapade tidigare (sparad som $PROD_AZURE_CLIENT_ID miljövariabeln).

  4. Välj Add secret (Lägg till hemlighet).

Ange sedan dig själv som en nödvändig granskare för den här miljön. När du försöker distribuera till Prod väntar GitHub Actions på ett godkännande innan du börjar. Medan ett jobb väntar på godkännande har det statusen Väntar. Om ett jobb inte godkänns inom 30 dagar misslyckas det automatiskt.

Mer information om miljöer och nödvändiga godkännanden finns i Använda miljöer för distribution.

  1. Välj Nödvändiga granskare.

  2. Sök efter och välj din GitHub-användare. Du kan ange upp till sex personer eller team. Endast en av de nödvändiga granskarna behöver godkänna jobbet för att det ska fortsätta.

  3. Välj Spara skyddsregler.

main Konfigurera slutligen som distributionsgren:

  1. I listrutan Distributionsgrenar väljer du Valda grenar.

  2. Välj Lägg till distributionsgrenregel och ange main för mönstret Förgreningsnamn.

  3. Välj Lägg till regel.

7. Testa CI/CD-pipelinen

I det här avsnittet gör du några ändringar i lagringsplatsen och testar CI/CD-pipelinen.

7.1 Klona lagringsplatsen

  1. I terminalen cd till en mapp där du vill klona lagringsplatsen lokalt.

  2. Klona lagringsplatsen. Se till att ersätta < Organization/Repository > i följande kommando med din GitHub-organisation och lagringsplatsnamn.

    git clone https://github.com/< Organization/Repository >.git
    
  3. Navigera till den klonade katalogen.

    cd <repository>
    
  4. Skapa sedan en ny gren och publicera den via fjärranslutning.

    git checkout -b feature1
    
    git push -u origin feature1
    

    En ny miljö skapas i Azure som är specifik för den här grenen.

  5. På GitHub navigerar du till huvudsidan för din nyligen skapade lagringsplats.

  6. Under namnet på lagringsplatsen väljer du Åtgärder.

    Du bör se ett nytt arbetsflöde för skapa miljö som körs.

7.2 Ändra koden

  1. Öppna den lokalt klonade lagringsplatsen i VS Code.

  2. I ADE. Självstudiemapp, gör en ändring i en fil.

  3. Spara ändringen.

7.3 Skicka ändringarna för att uppdatera miljön

  1. Mellanlagra ändringarna och push-överför till grenen feature1 .

    git add .
    git commit -m '<commit message>'
    git push
    
  2. På sidan Åtgärder på lagringsplatsen visas ett nytt arbetsflöde för uppdateringsmiljön som körs.

7.4 Skapa en pull-begäran

  1. Skapa en GitHub-pullbegäran main <- feature1.

  2. På sidan Åtgärder på lagringsplatsen ser du att ett nytt arbetsflöde har startats för att skapa en miljö som är specifik för pull-begäran med hjälp av testmiljötypen.

7.5 Sammanfoga pull-begäran

  1. Gå till pull-begäran som du skapade på GitHub.

  2. Sammanfoga pull-begäran.

    Dina ändringar publiceras i produktionsmiljön och förgrenings- och pull-begärandemiljöerna tas bort.

Rensa resurser

Om du inte planerar att använda någon av de resurser som du har skapat tar du bort dem så att du inte debiteras ytterligare avgifter. Om du har distribuerat exempelprogrammet i en annan resursgrupp kanske du vill upprepa följande steg.

Så här tar du bort resurser med hjälp av Azure-portalen:

  1. Välj menyknappen i det övre vänstra hörnet och välj sedan Resursgrupper.

  2. I listan väljer du den resursgrupp som du skapade.

  3. Välj Ta bort resursgrupp.

  4. Ange resursgruppsnamnet. Välj sedan ta bort.

Om du vill ta bort resurser med hjälp av Azure CLI anger du följande kommando:

az group delete --name <my-dev-center-rg>

Kom ihåg att om du tar bort resursgruppen tas alla resurser i den bort.