This commit is contained in:
		
							
								
								
									
										41
									
								
								.woodpecker/build.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								.woodpecker/build.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					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..30}; 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
 | 
				
			||||||
		Reference in New Issue
	
	Block a user