Latihan - Membuat tindakan GitHub untuk membangun gambar kontainer
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:
Buka repositori fork Anda di GitHub, dan pilih tab Actions .
Pada halaman Get started with GitHub Actions, pilih tautan set up a workflow yourself.
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.
Ganti alur kerja default main.yml nama file dengan azure-kubernetes-service.yml, lalu pilih Commit changes.
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.
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 tableMengganti 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.
- Di repositori Anda, pilih tab Actions.
- 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:
Di repositori Anda, pilih tab Actions.
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.
Pilih pekerjaan buildImage.
Jika Anda menunggu beberapa menit, langkah-langkah dalam pekerjaan harus berhasil diselesaikan.
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 tableAnda 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