From e327eb23bacfee13478f90fe109afb55cc36659d Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Thu, 29 Jan 2026 05:18:47 +0330 Subject: [PATCH] feat: add kubernetes deployment step via SSH --- .gitea/workflows/kub-deploy.yml | 39 ++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/kub-deploy.yml b/.gitea/workflows/kub-deploy.yml index df62926..36a1930 100644 --- a/.gitea/workflows/kub-deploy.yml +++ b/.gitea/workflows/kub-deploy.yml @@ -11,6 +11,7 @@ env: NEXUS_URL: http://194.5.195.53:32081/repository/foursat-nuget-hosted/index.json NEXUS_USER: admin NEXUS_PASS: 87zH26nbqT + K8S_SERVER: 194.5.195.53 jobs: # Job 1: Pack and Push Protobuf packages @@ -133,11 +134,37 @@ jobs: docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + - name: Deploy to Kubernetes + run: | + echo "🚀 Deploying to Kubernetes via SSH..." + + # Install SSH client + apk add --no-cache openssh-client sshpass + + # Set variables + IMAGE_TAG="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}" + + # Deploy via SSH to k8s master + export SSHPASS="${{ secrets.SERVER_PASSWORD }}" + sshpass -e ssh -o StrictHostKeyChecking=no root@${{ env.K8S_SERVER }} " + set -e + echo '📦 Updating deployment...' + + # Update image + kubectl set image deployment/cms cms=${IMAGE_TAG} --record 2>/dev/null || \ + kubectl set image deployment/cms cms=${IMAGE_TAG} + + # Wait for rollout + echo '⏳ Waiting for rollout...' + kubectl rollout status deployment/cms --timeout=180s + + echo '' + echo '✅ Deployment successful!' + echo '📊 Pod status:' + kubectl get pods -l app=cms -o wide + " + - name: Build and Push Complete run: | - echo "🎉 Build and push completed successfully!" - echo "📦 Image pushed to: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}" - echo "📦 Latest tag: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest" - echo "" - echo "🚀 To deploy manually on server:" - echo "kubectl set image deployment/cms cms=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}" + echo "🎉 Build, Push, and Deploy completed successfully!" + echo "📦 Image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}"