feat: add kubernetes deployment step via SSH
Build and Deploy to Kubernetes / build-and-deploy (push) Has been cancelled
Build and Deploy to Kubernetes / publish-packages (push) Has been cancelled

This commit is contained in:
masoodafar-web
2026-01-29 05:18:47 +03:30
parent 20280cf07f
commit e327eb23ba
+33 -6
View File
@@ -11,6 +11,7 @@ env:
NEXUS_URL: http://194.5.195.53:32081/repository/foursat-nuget-hosted/index.json NEXUS_URL: http://194.5.195.53:32081/repository/foursat-nuget-hosted/index.json
NEXUS_USER: admin NEXUS_USER: admin
NEXUS_PASS: 87zH26nbqT NEXUS_PASS: 87zH26nbqT
K8S_SERVER: 194.5.195.53
jobs: jobs:
# Job 1: Pack and Push Protobuf packages # 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 }}:${{ github.sha }}
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest 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 - name: Build and Push Complete
run: | run: |
echo "🎉 Build and push completed successfully!" echo "🎉 Build, Push, and Deploy completed successfully!"
echo "📦 Image pushed to: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}" echo "📦 Image: ${{ 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 }}"