when: - event: push branch: woodpecker-deploy steps: - name: 'Deploy user microservice' image: marcin00.azurecr.io/azure-cli-kubectl:latest environment: CLIENT_ID: 'c302726f-fafb-4143-94c1-67a70975574a' CLUSTER_NAME: 'build' DEPLOY_FILES: 'namespace.yaml secret-store.yaml deploy.yaml ingress.yaml' DEPLOYMENT: 'api' HEALTHCHECK_URL: 'https://user-microservice.marcin00.pl/health' NAMESPACE: 'user-microservice' RESOURCE_GROUP: 'tst-aks-rg' commands: # Login to Azure & Get Kubeconfig - az login --identity --client-id $CLIENT_ID - az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --overwrite-existing - kubelogin convert-kubeconfig -l azurecli # Apply Kubernetes Resources - | for file in $DEPLOY_FILES; do kubectl apply -f "$file" done # Verify Deployment (waiting until all pods reach "ready" status) - echo "Waiting for deployment rollout..." - kubectl rollout status deployment/$DEPLOYMENT -n $NAMESPACE --timeout=60s # Health Check - | echo "Checking app health $HEALTHCHECK_URL..." for i in {1..120}; do if curl -sf $HEALTHCHECK_URL; then echo "Health check OK" exit 0 else echo "Health check failed. Retry \$i..." sleep 5 fi done echo "Health check failed." exit 1