c5372ef488
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 7s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
Deploy to Production / Build Release Package (push) Failing after 19s
Deploy to Production / Deploy to Production Server (push) Has been skipped
Deploy to Production / Post-Deployment Checks (push) Has been skipped
Snapshot Admin Deployment / build-and-deploy (push) Failing after 35s
71 lines
2.8 KiB
YAML
71 lines
2.8 KiB
YAML
name: Snapshot Admin Deployment
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: snapshot-admin-deploy-main
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build-and-deploy:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Setup .NET SDK
|
|
uses: actions/setup-dotnet@v3
|
|
with:
|
|
dotnet-version: '10.0.x'
|
|
|
|
- name: Publish Blazor Web App
|
|
run: |
|
|
echo "[deploy] publishing .NET 10 Blazor app"
|
|
dotnet publish src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj -c Release -o ./publish
|
|
|
|
- name: Compress Artifact
|
|
run: |
|
|
echo "[deploy] compressing publish output"
|
|
tar -czf quantengine.tar.gz -C ./publish .
|
|
|
|
- name: Deploy to Host via Local SSH
|
|
env:
|
|
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
run: |
|
|
echo "[deploy] setting up SSH and deploying shadow copy"
|
|
mkdir -p ~/.ssh
|
|
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519
|
|
chmod 600 ~/.ssh/id_ed25519
|
|
|
|
# Upload artifact and deploy script to host
|
|
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 -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: |
|
|
set -e
|
|
root_html=$(curl -s "http://178.104.200.7/quant/")
|
|
ops_html=$(curl -s "http://178.104.200.7/quant/operations")
|
|
root_code=$(printf '%s' "$root_html" | grep -q "Quant Engine" && echo 200 || echo 500)
|
|
ops_code=$(printf '%s' "$ops_html" | grep -q "Operational Report" && echo 200 || echo 500)
|
|
echo "/quant/ -> ${root_code}"
|
|
echo "/quant/operations -> ${ops_code}"
|
|
if [ "$root_code" != "200" ]; then
|
|
echo "Deployment content check failed for /quant/"
|
|
exit 1
|
|
fi
|
|
if [ "$ops_code" != "200" ]; then
|
|
echo "Deployment content check failed for /quant/operations"
|
|
exit 1
|
|
fi
|