Gyakorlat – GitHub-művelet létrehozása tárolólemezkép létrehozásához
Ebben a leckében a következő lépéseket fogja végrehajtani:
- 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.
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üldi a véglegesítést a kuponszolgáltatás forráskódjába vagy egységtesztjeibe az
main
ágban. - Lépésspecifikus környezeti változókat definiál.
- Egy feladat vagy lépések készlete van, amelyek ugyanazon a munkafolyamat-futón futnak, elnevezve
Build and push image to ACR
.
Fontos
A GitHub Actions vagy a munkafolyamatok aktiválási feltételei és más munkadarabjai 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:
Nyissa meg az elágaztatott adattárat a GitHubon, és válassza ki a Actions lapot.
Get started with GitHub Actions A lapon válassza ki a set up a workflow yourself hivatkozást.
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' 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.
Cserélje le az alapértelmezett munkafolyamat-fájlnevet main.yml a gombra azure-kubernetes-service.yml, majd válassza a lehetőséget Commit changes.
Commit changes A képernyőn válassza kiCommit directly to the main branch, majd válassza a lehetőségetCommit changes.
Ezzel létrehozta a CI/CD-folyamat buildelési munkafolyamatát.
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
A AZURE_CONTAINER_REGISTRY az ACR nevére cserélve a következőhöz hasonló kimenetnek kell megjelennie:
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.
- Az adattárban válassza a Actions lapot.
- A bal oldalon, az alatt All workflowsválassza ki a Build and deploy an app to AKS munkafolyamatot, majd válassza a lehetőséget Run workflow.
A buildelés figyelése
A build valós idejű előrehaladásának megtekintése:
Az adattárban válassza a Actions lapot.
Válassza ki az Build and deploy an app to AKS munkafolyamathoz tartozó legújabb munkafolyamat-futtatási listát. A futtatás neve az előző lépésben használt véglegesítési üzenet.
Válassza ki a buildImage feladatot.
Ha vár néhány percet, a feladat lépéseinek sikeresnek kell lennie.
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
A következőhöz hasonló kimenetnek kell megjelennie, amely azt mutatja, hogy a GitHub-munkafolyamat egy új képverziót adott hozzá az ACR-hez:
Result ---------------------------------------- 8c75edb7a349ec570bd4eac397015bc3c547186e v1