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 úlohunebo sadu kroků, které se spouští ve 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 svého odnoženého úložiště ve GitHuba vyberte kartu Actions.

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

    snímek obrazovky, který ukazuje 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. Na obrazovce Commit changes vyberte Commit directly to the main branch a 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í

Pro zobrazení průběhu 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