Alıştırma - Kapsayıcı görüntüsü oluşturmak için GitHub eylemi oluşturma

Tamamlandı

Bu ünitede aşağıdaki görevleri tamamlayacaksınız:

  • Derleme işlem hattı uygulamak için bir GitHub eylemi oluşturun.
  • Derleme iş akışını tetiklemek için kupon hizmet kodunu değiştirin.
  • Derleme iş akışının ilerleme durumunu gerçek zamanlı olarak izleyin.

Derleme eylemini oluştur

Bu yordamdaki YAML kodu, aşağıdakilere sahip bir GitHub eylemi tanımlar:

  • Bir işlem, kupon hizmetinin kaynak koduna veya main dalındaki birim testlerine gönderildiğinde tetiklenir.
  • Adıma özgü ortam değişkenlerini tanımlar.
  • adıyla aynı iş akışı çalıştırıcısı üzerinde yürütülen bir Build and push image to ACR veya adım kümesi içerir.

Önemli

GitHub Actions veya iş akışlarının tetikleyici koşulları ve diğer öğeleri uygulamalara ve ortamlara bağlıdır. Anlama kolaylığı için bu örnekte ayrıntılar basit tutulmaktadır. Tüm mikro hizmetler tek bir depoda tutulduğundan hem derleme hem de dağıtım iş akışlarının kapsamı ürün hizmeti değişiklikleri olarak belirlenmiştir. Gerçek bir üretim senaryosunda, her mikro hizmet kendi ayrı deposunda tutulur.

GitHub Actions derleme eylemini oluşturmak için aşağıdaki adımları tamamlayın:

  1. GitHub'daki çatallanmış reponuza gidin ve Actions sekmesini seçin.

  2. Get started with GitHub Actions sayfasında set up a workflow yourself bağlantısını seçin.

    GitHub deposundaki Eylemler sekmesini gösteren ve iş akışı oluşturma bağlantısını vurgulayan ekran görüntüsü.

  3. Sonraki sayfada, düzenleyiciye aşağıdaki YAML kodunu yapıştırın.

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

    Azure Container Registry'nizin adını önceki ünitede oluşturduğunuz ACR adıyla değiştirin; örneğin, acseshop186748394.

  4. Varsayılan iş akışı main.yml dosya adını azure-kubernetes-service.ymlile değiştirin ve Commit changesseçin.

  5. Commit changes ekranında Commit directly to the main branch seçeneğini ve ardından Commit changes seçeneğini seçin.

    CI/CD işlem hattınız için derleme iş akışı oluşturmayı tamamladınız.

  6. ACR'de depolanan ürün hizmetinin geçerli sürümlerini görüntülemek için terminalinizde şu komutu çalıştırın:

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

    AZURE_CONTAINER_REGISTRY ACR'nizin adıyla değiştirdiğinizde aşağıdakine benzer bir çıktı görmeniz gerekir:

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

Derlemeyi tetikle

İş akışı dosyasını kaydettiğiniz anda, derleme iş akışı otomatik olarak tetiklenir. Derlemeyi el ile de tetikleyebilirsiniz.

  1. Deponuzda Actions sekmesini seçin.
  2. Sol taraftaki All workflowsaltında Build and deploy an app to AKS iş akışını seçin ve ardından Run workflowöğesini seçin.

Derlemeyi izleyin

Derlemenin gerçek zamanlı ilerleme durumunu görüntülemek için:

  1. Deponuzda Actions sekmesini seçin.

  2. Build and deploy an app to AKS iş akışı için listelenen en son iş akışı çalıştırmasını seçin. Çalıştırmanın adı, önceki adımda kullandığınız işleme iletisidir.

  3. buildImage işini seçin.

    GitHub iş akışının devam etmekte olduğunu gösteren ekran görüntüsü.

  4. Birkaç dakika beklerseniz, işteki adımlar başarıyla tamamlanmalıdır.

  5. Terminalinizde, ACR'de depolanan ürün hizmetinin sürümlerini görüntülemek için bu komutu yeniden çalıştırın.

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

    GitHub iş akışından ACR'ye yeni bir görüntü sürümünün eklendiğini gösteren aşağıdakine benzer bir çıktı görmeniz gerekir:

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