From 34e68197d11e047b2e1f465a6b827da374ec3f9f Mon Sep 17 00:00:00 2001 From: masoud Date: Sat, 6 Dec 2025 19:07:36 +0000 Subject: [PATCH] Add auto-deploy to K8s after build --- .gitea/workflows/kub-deploy.yml | 60 ++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/.gitea/workflows/kub-deploy.yml b/.gitea/workflows/kub-deploy.yml index 0e8123d..193e0e7 100644 --- a/.gitea/workflows/kub-deploy.yml +++ b/.gitea/workflows/kub-deploy.yml @@ -6,7 +6,7 @@ on: - kub-stage env: - REGISTRY: 194.5.195.53:30080 + REGISTRY: gitea-svc:3000 IMAGE_NAME: admin/backoffice-bff jobs: @@ -15,52 +15,44 @@ jobs: container: image: docker:latest options: --privileged - env: - HTTP_PROXY: http://proxyuser:87zH26nbqT2@46.249.98.211:3128 - HTTPS_PROXY: http://proxyuser:87zH26nbqT2@46.249.98.211:3128 - NO_PROXY: localhost,127.0.0.1,gitea-svc,194.5.195.53,10.0.0.0/8 steps: - - name: Install git - run: apk add --no-cache git - - - name: Clone repo + - name: Install dependencies run: | - git clone --depth 1 --branch kub-stage http://gitea-svc:3000/admin/BackOffice.BFF.git . + apk add --no-cache git curl + + # Install kubectl + curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" + chmod +x kubectl + mv kubectl /usr/local/bin/ - - name: Start Docker daemon with insecure registry + - name: Setup Docker daemon for insecure registry run: | mkdir -p /etc/docker - cat > /etc/docker/daemon.json << 'DAEMON' + cat > /etc/docker/daemon.json < ~/.docker/config.json << 'CONF' - { - "proxies": { - "default": { - "httpProxy": "http://proxyuser:87zH26nbqT2@46.249.98.211:3128", - "httpsProxy": "http://proxyuser:87zH26nbqT2@46.249.98.211:3128", - "noProxy": "localhost,127.0.0.1,gitea-svc,194.5.195.53,10.0.0.0/8" - } - } - } - CONF + DOCKER_CONFIG + + - name: Start Docker daemon + run: | dockerd & for i in $(seq 1 30); do docker info >/dev/null 2>&1 && break || sleep 2 done docker info + - name: Checkout code + run: | + git clone --depth 1 --branch kub-stage http://gitea-svc:3000/admin/BackOffice.BFF.git . + git log -1 --format="%H %s" + - name: Build Docker Image run: | cd src docker build -f BackOffice.BFF.WebApi/Dockerfile \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest \ - --build-arg HTTP_PROXY=http://proxyuser:87zH26nbqT2@46.249.98.211:3128 \ - --build-arg HTTPS_PROXY=http://proxyuser:87zH26nbqT2@46.249.98.211:3128 \ . - name: Push to Registry @@ -68,3 +60,15 @@ jobs: echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ env.REGISTRY }} -u admin --password-stdin docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + + - name: Deploy to Kubernetes + run: | + # Setup kubeconfig + mkdir -p ~/.kube + echo "${{ secrets.KUBECONFIG }}" | base64 -d > ~/.kube/config + + # Restart deployment to pull new image + kubectl rollout restart deployment/backoffice-bff || echo "Deployment doesn't exist yet" + + # Wait for rollout to complete + kubectl rollout status deployment/backoffice-bff --timeout=5m || echo "Deployment rollout pending"