Files
QuantEngineByItz/.gitea/workflows/snapshot_admin_deploy.yml
T
kjh2064 1d03d45866
Quant Engine CI/CD Pipeline / validate-core (pull_request) Has been cancelled
Quant Engine CI/CD Pipeline / validate-ui-and-storage (pull_request) Has been cancelled
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (pull_request) Has been cancelled
chore(ci): route SSH through host.docker.internal gateway
2026-06-25 15:59:11 +09:00

58 lines
2.1 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
run: |
echo "[deploy] checkout main for snapshot admin runtime"
if [ -d .git ]; then
git remote set-url origin http://x-access-token:${{ secrets.GITHUB_TOKEN }}@178.104.200.7/kjh2064/QuantEngineByItz.git
else
git init
git remote add origin http://x-access-token:${{ secrets.GITHUB_TOKEN }}@178.104.200.7/kjh2064/QuantEngineByItz.git
fi
git fetch origin main --depth=1
git reset --hard FETCH_HEAD
- 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_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H host.docker.internal >> ~/.ssh/known_hosts
# Upload artifact and deploy script to host
ssh kjh2064@host.docker.internal "mkdir -p /home/kjh2064/tmp"
scp quantengine.tar.gz kjh2064@host.docker.internal:/home/kjh2064/tmp/quantengine.tar.gz
# Execute hot deploy script
ssh kjh2064@host.docker.internal "chmod +x /home/kjh2064/tmp/deploy.sh 2>/dev/null || true"
scp tools/deploy_quantengine.sh kjh2064@host.docker.internal:/home/kjh2064/tmp/deploy.sh
ssh kjh2064@host.docker.internal "chmod +x /home/kjh2064/tmp/deploy.sh && /home/kjh2064/tmp/deploy.sh"