Gyakorlat – GitHub-művelet létrehozása tárolólemezkép létrehozásához

Befejeződött

Ebben a leckében a következő feladatokat fogja elvégezni:

  • Hozzon létre egy GitHub-műveletet egy buildelési folyamat implementálásához.
  • Módosítsa a kuponszolgáltatás kódját a buildelési munkafolyamat aktiválásához.
  • Valós időben monitorozza a buildelési munkafolyamat előrehaladását.

A buildelési művelet létrehozása

Az eljárás YAML-kódja egy GitHub-műveletet határoz meg, amely:

  • Eseményindítók, amikor a rendszer leküld egy véglegesítést a kuponszolgáltatás forráskódjába vagy egységtesztjeibe a main ágban.
  • Lépésspecifikus környezeti változókat határoz meg.
  • Van egy feladat, vagy egy lépéssorozat, amely a Build and push image to ACRnevű munkafolyamat-futón hajtódik végre.

Fontos

A GitHub Actions vagy munkafolyamatok eseményindító feltételei és egyéb összetevői az alkalmazásoktól és a környezettől függenek. A könnyebb megértés érdekében a részletek ebben a példában egyszerűek maradnak. A buildelési és az üzembehelyezési munkafolyamatok is a termékszolgáltatás-módosítások hatókörébe tartoznak, mivel az összes mikroszolgáltatás egyetlen adattár alatt marad. Egy tényleges éles forgatókönyvben minden mikroszolgáltatás a saját külön adattárában maradna.

A GitHub Actions buildelési műveletének létrehozásához hajtsa végre az alábbi lépéseket:

  1. Nyissa meg az elágaztatott adattárat a GitHubon, és válassza a Actions lapot.

  2. A Get started with GitHub Actions lapon válassza a set up a workflow yourself hivatkozást.

    Képernyőkép, amely a GitHub-adattár Műveletek lapját jeleníti meg, kiemelve a munkafolyamat-létrehozási hivatkozást.

  3. A következő lapon illessze be a következő YAML-kódot a szerkesztőbe.

    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 }} .
    
    

    Cserélje le az Azure Container Registry nevét az előző leckében létrehozott ACR-névre; például acseshop186748394.

  4. Cserélje le az alapértelmezett munkafolyamatot main.yml fájlnévre azure-kubernetes-service.yml, majd válassza a Commit changeslehetőséget.

  5. Commit changes A képernyőn válassza kiCommit directly to the main branch, majd válassza a lehetőségetCommit changes.

    Befejezte a CI/CD-folyamat buildelési munkafolyamatának létrehozását.

  6. A terminálban futtassa ezt a parancsot az ACR-ben tárolt termékszolgáltatás aktuális verzióinak megtekintéséhez:

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

    Cserélje ki a AZURE_CONTAINER_REGISTRY-t az ACR nevére, és ekkor a következőhöz hasonló kimenetet kell látnia:

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

A build aktiválása

A buildelési munkafolyamat automatikusan aktiválódik, amint véglegesíti a munkafolyamat-fájlt. Manuálisan is aktiválhatja a buildet.

  1. Az adattárban válassza a Actions lapot.
  2. A bal oldali All workflowsalatt válassza ki a Build and deploy an app to AKS munkafolyamatot, majd válassza a Run workflow.

A build figyelése

A build valós idejű előrehaladásának megtekintése:

  1. Az adattárban válassza a Actions lapot.

  2. Válassza ki a Build and deploy an app to AKS munkafolyamathoz tartozó legutóbbi munkafolyamat-futtatásokat. A futtatás neve az előző lépésben használt véglegesítési üzenet.

  3. Válassza ki a buildImage feladatot.

    Folyamatban lévő GitHub-munkafolyamat képernyőképe.

  4. Ha vár néhány percet, a feladat lépéseinek sikeresnek kell lennie.

  5. A terminálban futtassa újra ezt a parancsot az ACR-ben tárolt termékszolgáltatás verzióinak megtekintéséhez.

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

    Az alábbihoz hasonló kimenetnek kell megjelennie, amely azt mutatja, hogy a GitHub-munkafolyamat új képverziót adott hozzá az ACR-hez:

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