2025-09-05 14:17:31 +02:00

49 lines
1.1 KiB
YAML

name: Deploy to Kubernetes
on:
push:
branches: [ main, master ]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
environment: production
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup kubectl
uses: azure/setup-kubectl@v3
with:
version: 'v1.28.0'
- name: Configure kubectl
run: |
mkdir -p ~/.kube
echo "${{ secrets.KUBE_CONFIG }}" | base64 -d > ~/.kube/config || {
echo "Base64 decode failed, trying direct copy..."
echo "${{ secrets.KUBE_CONFIG }}" > ~/.kube/config
}
chmod 600 ~/.kube/config
- name: Verify cluster connection
run: |
kubectl version --client
kubectl cluster-info
- name: Deploy to Kubernetes
run: |
kubectl apply -k k8s/
kubectl rollout status deployment/homepage -n homepage --timeout=300s
- name: Verify deployment
run: |
kubectl get pods -n homepage
kubectl get services -n homepage
- name: Cleanup
if: always()
run: |
rm -f ~/.kube/config