練習 - 建立 GitHub 動作以建置容器映像
在此單元中,您將完成下列工作:
- 建立 GitHub 動作以實作組建管線。
- 修改優惠券服務程式碼以觸發組建工作流程。
- 即時監視組建工作流程的進度。
建立建置動作
此程序中的 YAML 程式碼定義的 GitHub 動作會有以下行為:
- 在將認可推送至
main
分支中的優惠券服務原始程式碼或單元測試時觸發。 - 定義步驟特定的環境變數。
- 有一項作業,或一組在相同工作流程執行器上執行的步驟 — 名為
Build and push image to ACR
。
重要
其他 GitHub Actions 或工作流程的觸發條件與其他成品,則取決於應用程式與環境。 為了方便了解,此範例中的詳細資料會保持簡單。 組建和部署工作流程的範圍都限於產品服務變更,因為所有微服務都會保留在單一存放庫之下。 在實際的生產案例中,每個微服務都會保留在自己的個別存放庫中。
完成下列步驟以建立 GitHub Actions 建置動作:
移至 GitHub 中的分支存放庫,選取索引Actions標籤。
在 [Get started with GitHub Actions] 頁面上,選取 [set up a workflow yourself] 連結。
在下一個頁面上,將下列 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 }} .
將 Azure Container Registry 的名稱取代為您在上一個單元中建立的 ACR 名稱;例如 acseshop186748394。
使用 azure-kubernetes-service.yml 取代預設工作流程 main.yml 檔案名稱,然後選取 [Commit changes]。
在 Commit changes 畫面上,選取 [Commit directly to the main branch],然後選取 [Commit changes]。
您已完成為 CI/CD 管線建立建置工作流程。
在您的終端機中,執行此命令以檢視儲存在 ACR 中的目前產品服務版本:
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
將 AZURE_CONTAINER_REGISTRY 取代為您的 ACR 名稱,您應該會看到類似下列的輸出:
Result ---------------------------------------- v1
觸發組建
一旦認可工作流程檔案,組建工作流程就會自動觸發。 您也可以手動觸發組建。
- 在存放庫中,選取 [Actions] 索引標籤。
- 在左側的 下 All workflows,選取 Build and deploy an app to AKS 工作流程,然後選取 Run workflow。
監視建置
若要檢視組建的即時進度:
在存放庫中,選取 [Actions] 索引標籤。
選取針對 Build and deploy an app to AKS 工作流程列出的最新工作流程回合。 執行的名稱是您在上一個步驟中使用的認可訊息。
buildImage選取作業。
如果您等候幾分鐘,作業中的步驟應該會順利完成。
在您的終端機中,再次執行此命令,以檢視儲存在 ACR 中的產品服務版本。
az acr repository show-tags -n AZURE_CONTAINER_REGISTRY --repository productservice --orderby time_desc --output table
您應該會看到類似下列的輸出,顯示已從 GitHub 工作流程將新的映像版本新增至 ACR:
Result ---------------------------------------- 8c75edb7a349ec570bd4eac397015bc3c547186e v1