WBS-7.9: improve snapshot admin run clarity

This commit is contained in:
2026-06-22 01:02:17 +09:00
parent ae10512170
commit 05ee10079d
2 changed files with 24 additions and 4 deletions
+14 -4
View File
@@ -21,6 +21,7 @@ jobs:
steps: steps:
- name: Checkout Code - name: Checkout Code
run: | run: |
echo "[smoke] push-only snapshot admin workflow validation"
if [ -d .git ]; then if [ -d .git ]; then
git remote set-url origin http://x-access-token:${{ secrets.GITHUB_TOKEN }}@192.168.123.100:8418/KimJaeHyun/myfinance.git git remote set-url origin http://x-access-token:${{ secrets.GITHUB_TOKEN }}@192.168.123.100:8418/KimJaeHyun/myfinance.git
else else
@@ -32,6 +33,7 @@ jobs:
- name: Setup Python Environment - name: Setup Python Environment
run: | run: |
echo "[smoke] prepare python venv"
VENV_BASE=/volume1/gitea/python_venv VENV_BASE=/volume1/gitea/python_venv
REQ_HASH=$(md5sum tools/validate_snapshot_admin_workflow_v1.py 2>/dev/null | cut -d' ' -f1 || echo "snapshot-admin-default") REQ_HASH=$(md5sum tools/validate_snapshot_admin_workflow_v1.py 2>/dev/null | cut -d' ' -f1 || echo "snapshot-admin-default")
VENV="$VENV_BASE/$REQ_HASH" VENV="$VENV_BASE/$REQ_HASH"
@@ -44,7 +46,9 @@ jobs:
echo "$VENV/bin" >> $GITHUB_PATH echo "$VENV/bin" >> $GITHUB_PATH
- name: Validate Snapshot Admin Workflow - name: Validate Snapshot Admin Workflow
run: python3 tools/validate_snapshot_admin_workflow_v1.py run: |
echo "[smoke] validate workflow only (no web UI, no deploy)"
python3 tools/validate_snapshot_admin_workflow_v1.py
# Manual dispatch gate: full workflow + web UI validation only. # Manual dispatch gate: full workflow + web UI validation only.
validate-snapshot-admin-full: validate-snapshot-admin-full:
@@ -53,6 +57,7 @@ jobs:
steps: steps:
- name: Checkout Code - name: Checkout Code
run: | run: |
echo "[full] workflow_dispatch snapshot admin validation"
if [ -d .git ]; then if [ -d .git ]; then
git remote set-url origin http://x-access-token:${{ secrets.GITHUB_TOKEN }}@192.168.123.100:8418/KimJaeHyun/myfinance.git git remote set-url origin http://x-access-token:${{ secrets.GITHUB_TOKEN }}@192.168.123.100:8418/KimJaeHyun/myfinance.git
else else
@@ -64,6 +69,7 @@ jobs:
- name: Setup Python Environment - name: Setup Python Environment
run: | run: |
echo "[full] prepare python venv"
VENV_BASE=/volume1/gitea/python_venv VENV_BASE=/volume1/gitea/python_venv
REQ_HASH=$(md5sum tools/validate_snapshot_admin_workflow_v1.py 2>/dev/null | cut -d' ' -f1 || echo "snapshot-admin-default") REQ_HASH=$(md5sum tools/validate_snapshot_admin_workflow_v1.py 2>/dev/null | cut -d' ' -f1 || echo "snapshot-admin-default")
VENV="$VENV_BASE/$REQ_HASH" VENV="$VENV_BASE/$REQ_HASH"
@@ -76,16 +82,20 @@ jobs:
echo "$VENV/bin" >> $GITHUB_PATH echo "$VENV/bin" >> $GITHUB_PATH
- name: Validate Snapshot Admin Workflow - name: Validate Snapshot Admin Workflow
run: python3 tools/validate_snapshot_admin_workflow_v1.py run: |
echo "[full] validate workflow"
python3 tools/validate_snapshot_admin_workflow_v1.py
- name: Validate Snapshot Admin Web UI - name: Validate Snapshot Admin Web UI
run: python3 tools/validate_snapshot_admin_web_v1.py run: |
echo "[full] validate web ui"
python3 tools/validate_snapshot_admin_web_v1.py
- name: Notify Run Result - name: Notify Run Result
if: always() if: always()
run: | run: |
STATUS="${{ job.status }}" STATUS="${{ job.status }}"
echo "=== Snapshot Admin Web Validation ===" echo "=== Snapshot Admin Full Validation ==="
echo "status: $STATUS" echo "status: $STATUS"
echo "workflow validation: Temp/snapshot_admin_workflow_v1.json" echo "workflow validation: Temp/snapshot_admin_workflow_v1.json"
echo "web validation: Temp/snapshot_admin_web_validation_v1.json" echo "web validation: Temp/snapshot_admin_web_validation_v1.json"
@@ -3,12 +3,18 @@ name: Snapshot Admin Deployment
on: on:
workflow_dispatch: workflow_dispatch:
concurrency:
group: snapshot-admin-deploy-main
cancel-in-progress: true
jobs: jobs:
deploy-snapshot-admin: deploy-snapshot-admin:
runs-on: self-hosted runs-on: self-hosted
timeout-minutes: 20
steps: steps:
- name: Checkout Code - name: Checkout Code
run: | run: |
echo "[deploy] checkout main for snapshot admin runtime"
if [ -d .git ]; then if [ -d .git ]; then
git remote set-url origin http://x-access-token:${{ secrets.GITHUB_TOKEN }}@192.168.123.100:8418/KimJaeHyun/myfinance.git git remote set-url origin http://x-access-token:${{ secrets.GITHUB_TOKEN }}@192.168.123.100:8418/KimJaeHyun/myfinance.git
else else
@@ -20,6 +26,7 @@ jobs:
- name: Setup Python Environment - name: Setup Python Environment
run: | run: |
echo "[deploy] prepare python venv for snapshot admin launcher"
VENV_BASE=/volume1/gitea/python_venv VENV_BASE=/volume1/gitea/python_venv
REQ_HASH=$(md5sum tools/validate_snapshot_admin_workflow_v1.py 2>/dev/null | cut -d' ' -f1 || echo "snapshot-admin-default") REQ_HASH=$(md5sum tools/validate_snapshot_admin_workflow_v1.py 2>/dev/null | cut -d' ' -f1 || echo "snapshot-admin-default")
VENV="$VENV_BASE/$REQ_HASH" VENV="$VENV_BASE/$REQ_HASH"
@@ -36,6 +43,7 @@ jobs:
SNAPSHOT_ADMIN_AUTH_USER: ${{ vars.SNAPSHOT_ADMIN_AUTH_USER }} SNAPSHOT_ADMIN_AUTH_USER: ${{ vars.SNAPSHOT_ADMIN_AUTH_USER }}
SNAPSHOT_ADMIN_AUTH_PASSWORD: ${{ secrets.SNAPSHOT_ADMIN_AUTH_PASSWORD }} SNAPSHOT_ADMIN_AUTH_PASSWORD: ${{ secrets.SNAPSHOT_ADMIN_AUTH_PASSWORD }}
run: | run: |
echo "[deploy] restart loopback service on 127.0.0.1:8787"
export ROOT_DIR="$PWD" export ROOT_DIR="$PWD"
export SNAPSHOT_ADMIN_HOST=127.0.0.1 export SNAPSHOT_ADMIN_HOST=127.0.0.1
export SNAPSHOT_ADMIN_PORT=8787 export SNAPSHOT_ADMIN_PORT=8787
@@ -52,6 +60,7 @@ jobs:
SNAPSHOT_ADMIN_AUTH_USER: ${{ vars.SNAPSHOT_ADMIN_AUTH_USER }} SNAPSHOT_ADMIN_AUTH_USER: ${{ vars.SNAPSHOT_ADMIN_AUTH_USER }}
SNAPSHOT_ADMIN_AUTH_PASSWORD: ${{ secrets.SNAPSHOT_ADMIN_AUTH_PASSWORD }} SNAPSHOT_ADMIN_AUTH_PASSWORD: ${{ secrets.SNAPSHOT_ADMIN_AUTH_PASSWORD }}
run: | run: |
echo "[deploy] verify local health and auth gate"
export ROOT_DIR="$PWD" export ROOT_DIR="$PWD"
export SNAPSHOT_ADMIN_HOST=127.0.0.1 export SNAPSHOT_ADMIN_HOST=127.0.0.1
export SNAPSHOT_ADMIN_PORT=8787 export SNAPSHOT_ADMIN_PORT=8787
@@ -66,3 +75,4 @@ jobs:
else else
curl -fsS http://127.0.0.1:8787/api/state | python3 -c "import json,sys; print(json.load(sys.stdin)['version']['app'])" curl -fsS http://127.0.0.1:8787/api/state | python3 -c "import json,sys; print(json.load(sys.stdin)['version']['app'])"
fi fi
echo "[deploy] snapshot admin deploy verification complete"