Alıştırma - Kapsayıcı görüntüsü oluşturmak için GitHub eylemi oluşturma
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
maindalı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 ACRveya 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:
GitHub'daki çatallanmış reponuza gidin ve Actions sekmesini seçin.
Get started with GitHub Actions sayfasında set up a workflow yourself bağlantısını seçin.
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.
Varsayılan iş akışı main.yml dosya adını azure-kubernetes-service.ymlile değiştirin ve Commit changesseçin.
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.
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 tableAZURE_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.
- Deponuzda Actions sekmesini seçin.
- 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:
Deponuzda Actions sekmesini seçin.
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.
buildImage işini seçin.
Birkaç dakika beklerseniz, işteki adımlar başarıyla tamamlanmalıdır.
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 tableGitHub 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