Cvičení – vytvoření akce GitHubu pro sestavení image kontejneru

Dokončeno

V této lekci dokončíte následující úlohy:

  • Vytvořte GitHub Action pro sestavení build pipeline.
  • Upravte kód kuponové služby tak, aby aktivoval proces sestavení.
  • Monitorujte průběh pracovního postupu sestavení v reálném čase.

Vytvořte akci sestavení

Kód YAML v tomto postupu definuje akci GitHubu, která:

  • Aktivuje se, když je commit vložen do zdrojového kódu služby kupónů nebo jednotkových testů ve větvi main.
  • Definuje proměnné prostředí specifické pro jednotlivé kroky.
  • Má jednu úlohu nebo sadu kroků, které se spouštějí na stejném spouštěči pracovních postupů s názvem Build and push image to ACR.

Důležitý

Aktivační podmínky a další artefakty GitHub Actions nebo pracovních postupů závisí na aplikacích a prostředích. Pro usnadnění porozumění jsou podrobnosti v tomto příkladu jednoduché. Pracovní postupy sestavení i nasazení jsou vymezeny na změny služeb produktů, protože všechny mikroslužby se uchovávají v jednom úložišti. Ve skutečném produkčním scénáři by každá mikroslužba byla uložena ve vlastním samostatném úložišti.

Provedením následujících kroků vytvořte akci sestavení GitHub Actions:

  1. Přejděte do odvozeného úložiště na GitHubuActions a vyberte záložku.

  2. Na stránce Get started with GitHub Actions vyberte odkaz set up a workflow yourself.

    Snímek obrazovky znázorňující kartu Akce v úložišti GitHub se zvýrazněním odkazu na vytvoření pracovního postupu

  3. Na další stránce vložte do editoru následující kód YAML.

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

    Nahraďte název služby Azure Container Registry názvem ACR, který jste vytvořili v předchozí lekci. například acseshop186748394.

  4. Nahraďte výchozí název souboru pracovního postupu main.ymlazure-kubernetes-service.ymla pak vyberte Commit changes.

  5. Commit changes Na obrazovce vyberte Commit directly to the main brancha pak vyberte Commit changes.

    Dokončili jste vytvoření pracovního postupu sestavení pro váš pipeline CI/CD.

  6. Spuštěním tohoto příkazu v terminálu zobrazte aktuální verze služby produktu uložené v ACR:

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

    Nahraďte AZURE_CONTAINER_REGISTRY názvem služby ACR, měl by se zobrazit výstup podobný následujícímu:

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

Aktivace sestavení

Pracovní postup sestavení se aktivuje automaticky, jakmile potvrdíte soubor pracovního postupu. Sestavení můžete aktivovat také ručně.

  1. V úložišti vyberte kartu Actions.
  2. Na levé straně v části All workflowsvyberte pracovní postup Build and deploy an app to AKS a pak vyberte Run workflow.

Sledujte sestavení

Chcete-li zobrazit průběh sestavení v reálném čase:

  1. V úložišti vyberte kartu Actions.

  2. Vyberte poslední spuštění pracovního postupu uvedené pro pracovní postup Build and deploy an app to AKS. Název spuštění je zpráva potvrzení, kterou jste použili v předchozím kroku.

  3. Vyberte úlohu buildImage.

    Snímek obrazovky znázorňující probíhající pracovní postup GitHubu

  4. Pokud počkáte několik minut, měly by se kroky v úloze úspěšně dokončit.

  5. V terminálu spusťte tento příkaz znovu a zobrazte verze služby produktu uložené v ACR.

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

    Měl by se zobrazit výstup podobný následujícímu, který ukazuje, že se do ACR přidala nová verze image z pracovního postupu GitHubu:

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