From 3c8ec55203efed4e3dd9aca27ec2c47c24b32073 Mon Sep 17 00:00:00 2001 From: mokjakA Date: Thu, 6 Nov 2025 20:04:56 +0900 Subject: [PATCH] =?UTF-8?q?feat:deploy.yml=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index c3a5570..0e7baab 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -112,8 +112,27 @@ jobs: env: KUBECONFIG_DATA: ${{ secrets.KUBECONFIG }} run: | + set -euo pipefail + if [ -z "${KUBECONFIG_DATA:-}" ]; then + echo "ERROR: secrets.KUBECONFIG is missing or empty"; exit 1 + fi + mkdir -p ~/.kube - echo "$KUBECONFIG_DATA" > ~/.kube/config + + if DECODED="$(echo "$KUBECONFIG_DATA" | base64 -d 2>/dev/null)"; then + if echo "$DECODED" | grep -q '^apiVersion:'; then + printf '%s' "$DECODED" > ~/.kube/config + else + echo "ERROR: base64 decoded data doesn't look like kubeconfig"; exit 1 + fi + else + if echo "$KUBECONFIG_DATA" | grep -q '^apiVersion:'; then + printf '%s' "$KUBECONFIG_DATA" > ~/.kube/config + else + echo "ERROR: KUBECONFIG is neither base64 nor kubeconfig YAML"; exit 1 + fi + fi + chmod 600 ~/.kube/config - name: Deploy to Kubernetes @@ -157,7 +176,7 @@ jobs: kubectl rollout restart deployment/profile-service -n default kubectl rollout restart deployment/auth-service -n default kubectl rollout restart deployment/feed-worker -n default - + # Wait for all deployments to be ready kubectl rollout status deployment/project-alpha -n default --timeout=300s kubectl rollout status deployment/music-service -n default --timeout=300s