From 6808c7176ea00f14f39dfbbf391005e47cbfd6b8 Mon Sep 17 00:00:00 2001 From: Marcin-Ramotowski Date: Sat, 26 Jul 2025 14:48:28 +0200 Subject: [PATCH] Created Woodpecker pipeline --- .woodpecker/build.yaml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .woodpecker/build.yaml diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml new file mode 100644 index 0000000..4c61e4b --- /dev/null +++ b/.woodpecker/build.yaml @@ -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