Latihan - Membuat tindakan GitHub untuk membangun gambar kontainer

Selesai

Di unit ini, Anda akan menyelesaikan tugas berikut:

  • Buat tindakan GitHub untuk mengimplementasikan alur build.
  • Ubah kode layanan kupon untuk memicu alur kerja build.
  • Pantau kemajuan alur kerja build secara real time.

Buat tindakan kompilasi

Kode YAML dalam prosedur ini mendefinisikan tindakan GitHub yang:

  • Dipicu ketika commit di-push ke kode sumber atau pengujian unit layanan kupon di cabang main.
  • Menentukan variabel lingkungan yang spesifik untuk langkah tertentu.
  • Memiliki satu pekerjaan , atau serangkaian langkah yang dijalankan pada runner alur kerja yang sama, bernama Build and push image to ACR.

Penting

Kondisi pemicu dan artefak GitHub Actions atau alur kerja lainnya bergantung pada aplikasi dan lingkungan. Untuk kemudahan pemahaman, detailnya tetap sederhana dalam contoh ini. Alur kerja build dan deploy dibatasi pada perubahan layanan produk karena semua mikroservis disimpan dalam satu repositori. Dalam skenario produksi aktual, setiap layanan mikro akan disimpan di repositori terpisah mereka sendiri.

Selesaikan langkah-langkah berikut untuk membuat tindakan build GitHub Actions:

  1. Buka repositori fork Anda di GitHub, dan pilih tab Actions .

  2. Pada halaman Get started with GitHub Actions, pilih tautan set up a workflow yourself.

    Cuplikan layar yang memperlihatkan tab Tindakan di repositori GitHub, menyoroti tautan pembuatan alur kerja.

  3. Pada halaman berikutnya, tempelkan kode YAML berikut ke editor.

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

    Ganti nama Azure Container Registry Anda dengan nama ACR yang Anda buat di unit sebelumnya; misalnya, acseshop186748394.

  4. Ganti alur kerja default main.yml nama file dengan azure-kubernetes-service.yml, lalu pilih Commit changes.

  5. Commit changes Pada layar, pilih Commit directly to the main branch, lalu pilih Commit changes.

    Anda telah selesai membuat alur kerja build untuk alur CI/CD Anda.

  6. Di terminal Anda, jalankan perintah ini untuk melihat versi layanan produk saat ini yang disimpan di ACR:

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

    Mengganti AZURE_CONTAINER_REGISTRY dengan nama ACR Anda, Anda akan melihat output yang mirip dengan yang berikut ini:

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

Memicu pemajuan

Alur kerja build memicu secara otomatis ketika Anda mengunggah file alur kerja. Anda juga dapat memicu build secara manual.

  1. Di repositori Anda, pilih tab Actions.
  2. Di sebelah kiri, di bawah All workflows, pilih alur kerja Build and deploy an app to AKS, lalu pilih Run workflow.

Memantau proses pembangunan

Untuk melihat kemajuan waktu nyata dari build:

  1. Di repositori Anda, pilih tab Actions.

  2. Pilih eksekusi alur kerja terbaru yang tercantum untuk alur kerja Build and deploy an app to AKS. Nama run adalah pesan commit yang Anda gunakan di langkah sebelumnya.

  3. Pilih pekerjaan buildImage.

    Cuplikan layar memperlihatkan alur kerja GitHub sedang berlangsung.

  4. Jika Anda menunggu beberapa menit, langkah-langkah dalam pekerjaan harus berhasil diselesaikan.

  5. Di terminal Anda, jalankan perintah ini lagi untuk melihat versi layanan produk yang disimpan di ACR.

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

    Anda akan melihat output yang mirip dengan yang berikut ini yang menunjukkan versi gambar baru telah ditambahkan ke ACR dari alur kerja GitHub:

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