68 lines
2.4 KiB
Markdown
68 lines
2.4 KiB
Markdown
---
|
|
name: deploy-gpu
|
|
description: Sync this repo's working tree to nik-gpu, refresh the flat runtime paths via setup.sh, and optionally smoke-test one task against the live game. Use when the user asks to deploy, push, sync, or ship code to nik-gpu, or wants to try a task live after an edit.
|
|
disable-model-invocation: true
|
|
---
|
|
|
|
# /deploy-gpu
|
|
|
|
Deploys the current working tree to `nik-gpu` and refreshes the runtime paths
|
|
`~/ba_dailies.sh` actually executes from. See `README.md`'s "Deploying your
|
|
changes" section and `CLAUDE.md`'s "Deployment model" for the source of truth
|
|
this skill wraps — if either has changed, follow the doc over this file.
|
|
|
|
Optional task argument (smoke test): $ARGUMENTS
|
|
|
|
## Why two steps, not just rsync
|
|
|
|
`rsync` only updates the git checkout at `nik-gpu:~/repo/ba-auto-daily/`. The
|
|
launcher itself runs from separate flat paths (`~/ba_dailies.sh`,
|
|
`~/ba_daily.py`, `~/ba_auto/`, `~/ba_assets/`) that only `setup.sh` copies
|
|
into. Skipping the `setup.sh` step means nik-gpu keeps executing old code
|
|
even though the rsync "succeeded".
|
|
|
|
## Steps
|
|
|
|
1. From the repo root, run:
|
|
|
|
```bash
|
|
rsync -av --delete \
|
|
--exclude='.git/' \
|
|
--exclude='__pycache__/' \
|
|
--exclude='*.pyc' \
|
|
--exclude='.claude/settings.local.json' \
|
|
--exclude='graphify-out/' \
|
|
--exclude='screenshots/' \
|
|
--exclude='scratchpad/' \
|
|
./ nik-gpu:~/repo/ba-auto-daily/
|
|
```
|
|
|
|
2. Run:
|
|
|
|
```bash
|
|
ssh nik-gpu "cd ~/repo/ba-auto-daily && ./setup.sh"
|
|
```
|
|
|
|
Report any failure here directly (missing host tool, venv/pip error,
|
|
missing `tesseract`) rather than treating the deploy as done.
|
|
|
|
3. **Only if a task name was given in `$ARGUMENTS`** (e.g. `/deploy-gpu
|
|
cafe`), run it live as a smoke test:
|
|
|
|
```bash
|
|
ssh nik-gpu "~/ba_dailies.sh <task>"
|
|
```
|
|
|
|
Do not invent a task to run if none was given — several tasks
|
|
(`story_sweep`, `shop_common`, `shop_tactical`, `lesson`) spend real AP,
|
|
credits, tactical coin, or lesson tickets, and running one without the
|
|
user asking for that specific task would be an unrequested spend.
|
|
|
|
Exit code 0 only means the script ran without a Python exception, not
|
|
that the in-game action succeeded — surface the task's own log lines
|
|
(e.g. `claiming all`, `nothing to claim`, `patted N sparkle(s)`) to the
|
|
user, not just the exit code.
|
|
|
|
4. Summarize what happened: deploy succeeded/failed, and if a task was
|
|
smoke-tested, what its log output actually said.
|