Øvelse – Opprett en GitHub-handling for å bygge et beholderbilde

Fullført

I denne enheten skal du fullføre følgende oppgaver:

  • Opprett en GitHub-handling for å implementere et byggforløp.
  • Endre kupongtjenestekoden for å utløse build-arbeidsflyten.
  • Overvåk fremdriften i byggarbeidsflyten i sanntid.

Opprett byggehandlingen

YAML-koden i denne prosedyren definerer en GitHub-handling som:

  • Utløser når en utføring sendes til kupongtjenestens kildekode eller enhetstester i den main grenen.
  • Definerer trinnspesifikke miljøvariabler.
  • Har én jobb, eller ett sett med trinn som kjøres på samme arbeidsflytløper, kalt Build and push image to ACR.

Important

Utløserbetingelser og andre artefakter av GitHub-handlinger eller arbeidsflyter avhenger av appene og miljøene. For enkel forståelse holdes detaljene enkle i dette eksemplet. Både bygg- og utrullingsarbeidsflytene er begrenset til endringer i produkttjenesten fordi alle mikrotjenestene holdes under ett enkelt repositorium. I et faktisk produksjonsscenario ville hver mikrotjeneste holdes i sitt eget separate repositorium.

Fullfør følgende fremgangsmåte for å opprette byggehandlingen For GitHub-handlinger:

  1. Gå til det forgrenede repositoriet i GitHub, og velg fanen Actions .

  2. Velg koblingen Get started with GitHub Actionsset up a workflow yourself-siden.

    skjermbilde som viser Handlinger-fanen i GitHub-repositoriet, og uthever koblingen for oppretting av arbeidsflyt.

  3. Lim inn følgende YAML-kode i redigeringsprogrammet på neste side.

    name: Build and deploy an app to AKS
    
    on:
      push:
        branches: ["main"]
      workflow_dispatch:
    
    env:
      # Local environment variables used later in the workflow
      AZURE_CONTAINER_REGISTRY: 'name of your Azure Container Registry'
      CONTAINER_NAME: 'productservice'
      RESOURCE_GROUP: 'rg-eshop'
      CLUSTER_NAME: 'aks-eshop'
      DEPLOYMENT_MANIFEST_PATH: './product.yml'
      DOCKER_PATH: './DockerfileProducts.acr'
    
    jobs:
      buildImage:
        permissions:
          contents: read
          id-token: write
        runs-on: ubuntu-latest
        steps:
          # Checks out the repository this file is in
          - uses: actions/checkout@v3
    
          # Logs in with your Azure credentials stored in GitHub secrets
          - name: Azure login
            uses: azure/login@v1.4.6
            with:
              creds: '${{ secrets.AZURE_CREDENTIALS }}'
    
          # Builds and pushes an image up to your Azure Container Registry
          - name: Build and push image to ACR
            run: |
              az acr build --file ${{ env.DOCKER_PATH }} --image ${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }} --registry ${{ env.AZURE_CONTAINER_REGISTRY }} -g ${{ env.RESOURCE_GROUP }} .
    
    

    Erstatt navnet på Azure Container Registry- med ACR-navnet du opprettet i den forrige enheten. for eksempel acseshop186748394.

  4. Erstatt standard arbeidsflyt main.yml filnavn med azure-kubernetes-service.yml, og velg deretter Commit changes.

  5. Velg Commit changesCommit directly to the main branch skjermen, og velg Commit changesderetter .

    Du er ferdig med å opprette build-arbeidsflyten for CI/CD-datasamlebåndet.

  6. Kjør denne kommandoen i terminalen for å vise gjeldende versjoner av produkttjenesten som er lagret i acr:

    az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
    

    Hvis du erstatter AZURE_CONTAINER_REGISTRY med navnet på ACR, bør du se utdata som ligner på følgende:

    Result
    ----------------------------------------
    v1
    

Utløse bygget

Build-arbeidsflyten utløses automatisk så snart du utfører arbeidsflytfilen. Du kan også utløse bygget manuelt.

  1. Velg fanen Actions i repositoriet.
  2. Velg All workflows arbeidsflyt under Build and deploy an app to AKStil venstre, og velg deretter Run workflow.

Overvåk bygget

Slik viser du fremdriften i sanntid for bygget:

  1. Velg fanen Actions i repositoriet.

  2. Velg den nyeste arbeidsflytkjøringen som er oppført for Build and deploy an app to AKS arbeidsflyten. Navnet på kjøringen er utføringsmeldingen du brukte i forrige trinn.

  3. Velg buildImage jobb.

    Skjermbilde som viser en GitHub-arbeidsflyt som pågår.

  4. Hvis du venter noen minutter, bør trinnene i jobben fullføres.

  5. Kjør denne kommandoen på nytt i terminalen for å vise versjonene av produkttjenesten som er lagret i acr.

    az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
    

    Du bør se utdata som ligner på følgende som viser at en ny bildeversjon er lagt til i ACR fra GitHub-arbeidsflyten:

    Result
    ----------------------------------------
    8c75edb7a349ec570bd4eac397015bc3c547186e
    v1