diff --git a/.gitea/workflows/deploy-prod.yml b/.gitea/workflows/deploy-prod.yml index f446687..be153c7 100644 --- a/.gitea/workflows/deploy-prod.yml +++ b/.gitea/workflows/deploy-prod.yml @@ -110,7 +110,7 @@ jobs: - name: Create Backup run: | echo "๐Ÿ“ฆ Creating backup of current deployment..." - ssh -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} << 'EOF' + ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} << 'EOF' set -e BACKUP_DIR="/home/kjh2064/quantengine_backup" BACKUP_NAME="quantengine_$(date +%Y%m%d_%H%M%S)" @@ -142,11 +142,11 @@ jobs: ARCHIVE_NAME=$(ls -1 quant-engine-release-*.tar.gz | head -1) # Create temporary directory on remote - ssh -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} \ + ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} \ "mkdir -p /tmp/quant-deploy && chmod 777 /tmp/quant-deploy" # Transfer archive - scp -i ~/.ssh/id_ed25519 "$ARCHIVE_NAME" \ + scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 "$ARCHIVE_NAME" \ ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }}:/tmp/quant-deploy/ echo "โœ… Package transferred" @@ -154,7 +154,7 @@ jobs: - name: Extract and Install run: | echo "๐Ÿ“ฆ Extracting and installing..." - ssh -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} << 'EOF' + ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} << 'EOF' set -e DEPLOY_PATH="${{ env.DEPLOY_PATH }}" @@ -182,7 +182,7 @@ jobs: - name: Restart Service run: | echo "๐Ÿ”„ Restarting quantengine service to apply changes (Downtime minimal)..." - ssh -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} << 'EOF' + ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} << 'EOF' set -e # Restart service @@ -203,15 +203,15 @@ jobs: - name: Health Check run: | - echo "๐Ÿงช Running health checks..." + echo "๐Ÿงช Running health checks on remote host..." - # Wait for service to be ready (localhost:5000/quant/ through Nginx/Kestrel) + # Wait for service to be ready (localhost:5000/quant/ through Kestrel inside remote host) for i in {1..30}; do - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \ - "http://127.0.0.1:5000/quant/" || echo "000") + HTTP_CODE=$(ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} \ + "curl -s -o /dev/null -w \"%{http_code}\" http://127.0.0.1:5000/quant/" || echo "000") if [ "$HTTP_CODE" = "200" ]; then - echo "โœ… Health check passed (HTTP $HTTP_CODE at localhost:5000/quant/)" + echo "โœ… Health check passed (HTTP $HTTP_CODE inside remote host)" break fi @@ -222,7 +222,7 @@ jobs: if [ "$HTTP_CODE" != "200" ]; then echo "โŒ Health check failed after 60 seconds" echo "Service logs:" - ssh -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} \ + ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 ${{ env.DEPLOY_USER }}@${{ env.DEPLOY_HOST }} \ "sudo journalctl -u ${{ env.SERVICE_NAME }} -n 20" || true exit 1 fi @@ -333,11 +333,11 @@ jobs: steps: - name: Performance Baseline run: | - echo "๐Ÿ“ˆ Collecting performance metrics..." + echo "๐Ÿ“ˆ Collecting performance metrics via Public IP..." # Page load time START=$(date +%s%N) - curl -s http://${{ env.DEPLOY_HOST }}/quant/ > /dev/null + curl -s http://178.104.200.7/quant/ > /dev/null END=$(date +%s%N) LOAD_TIME=$(( (END - START) / 1000000 )) diff --git a/.gitea/workflows/snapshot_admin_deploy.yml b/.gitea/workflows/snapshot_admin_deploy.yml index 74c8634..98dfa0d 100644 --- a/.gitea/workflows/snapshot_admin_deploy.yml +++ b/.gitea/workflows/snapshot_admin_deploy.yml @@ -39,20 +39,17 @@ jobs: run: | echo "[deploy] setting up SSH and deploying shadow copy" mkdir -p ~/.ssh - echo "$SSH_PRIVATE_KEY" | base64 -d > ~/.ssh/id_ed25519 - wc -c ~/.ssh/id_ed25519 - md5sum ~/.ssh/id_ed25519 + echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 - ssh-keyscan -H 178.104.200.7 >> ~/.ssh/known_hosts # Upload artifact and deploy script to host - ssh -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 "mkdir -p /home/kjh2064/tmp" - scp -i ~/.ssh/id_ed25519 quantengine.tar.gz kjh2064@178.104.200.7:/home/kjh2064/tmp/quantengine.tar.gz + ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 "mkdir -p /home/kjh2064/tmp" + scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 quantengine.tar.gz kjh2064@178.104.200.7:/home/kjh2064/tmp/quantengine.tar.gz # Execute hot deploy script - ssh -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 "chmod +x /home/kjh2064/tmp/deploy.sh 2>/dev/null || true" - scp -i ~/.ssh/id_ed25519 tools/deploy_quantengine.sh kjh2064@178.104.200.7:/home/kjh2064/tmp/deploy.sh - ssh -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 "chmod +x /home/kjh2064/tmp/deploy.sh && /home/kjh2064/tmp/deploy.sh" + ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 "chmod +x /home/kjh2064/tmp/deploy.sh 2>/dev/null || true" + scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 tools/deploy_quantengine.sh kjh2064@178.104.200.7:/home/kjh2064/tmp/deploy.sh + ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 "chmod +x /home/kjh2064/tmp/deploy.sh && /home/kjh2064/tmp/deploy.sh" - name: Verify Public Routes run: |