Matches the 1.0.0-38 product display rename. Touches every
infrastructure identifier:
- container_name: truenas-burnin → nas-burnin
- forge URL in /api/v1/updates/check
- security-scan: REPO_URL, REPO, DEPLOY_DIR, systemd unit description
- run-tests.sh default container name
- doc paths in README/SPEC/CLAUDE
- in-app instruction strings (login.html, settings.html, auth_cli.py)
Maple migration done in lockstep:
docker compose down (truenas-burnin)
mv ~/docker/stacks/{truenas-burnin,nas-burnin}
systemd unit ExecStart updated + daemon-reload
docker compose up -d --build → container nas-burnin
Old image truenas-burnin-app removed (~12 GB reclaimed)
Stale top-level orphans cleaned (config.py, poller.py, routes.py,
truenas.py, tests/) — all dead since pre-split refactors
Forge repo rename (git.hellocomputer.xyz/brandon/truenas-burnin →
nas-burnin) is a separate UI-only step. Forgejo redirects the old
URL after rename, so this commit can be pushed to the existing
remote first; remote URL gets updated locally once you rename.
44 lines
1.6 KiB
Bash
Executable file
44 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Run the test suite against the deployed container on maple.
|
|
#
|
|
# Tests aren't shipped in the prod image (Dockerfile only COPYs app/),
|
|
# so this tars them, copies them in, and runs unittest discover. Cleans
|
|
# up after itself so the running container doesn't accrue test files.
|
|
#
|
|
# Usage:
|
|
# scripts/run-tests.sh # run full suite
|
|
# scripts/run-tests.sh test_lifecycle # run a specific module
|
|
#
|
|
# Requires: ssh access to maple (configured in ~/.ssh/config).
|
|
|
|
set -euo pipefail
|
|
|
|
REMOTE_HOST="${REMOTE_HOST:-maple}"
|
|
CONTAINER="${CONTAINER:-nas-burnin}"
|
|
REMOTE_TMP="/tmp/tnb-tests-$$.tgz"
|
|
CONTAINER_TMP="/tmp/tnb-tests.tgz"
|
|
PATTERN="${1:-}"
|
|
|
|
# Resolve repo root so this works whether invoked from the root or scripts/
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
echo "→ Packing tests/ from $REPO_ROOT"
|
|
cd "$REPO_ROOT"
|
|
tar cz tests | ssh "$REMOTE_HOST" "cat > $REMOTE_TMP"
|
|
|
|
echo "→ Copying into container $CONTAINER"
|
|
ssh "$REMOTE_HOST" "docker cp $REMOTE_TMP $CONTAINER:$CONTAINER_TMP && rm -f $REMOTE_TMP"
|
|
|
|
if [ -n "$PATTERN" ]; then
|
|
echo "→ Running tests matching: $PATTERN"
|
|
RUN_CMD="cd /opt/app && tar xzf $CONTAINER_TMP && python -m unittest tests.$PATTERN -v"
|
|
else
|
|
echo "→ Running full suite"
|
|
RUN_CMD="cd /opt/app && tar xzf $CONTAINER_TMP && python -m unittest discover -s tests"
|
|
fi
|
|
|
|
# Always try to clean tests/ out of the container after the run, even on failure.
|
|
CLEANUP="rm -rf /opt/app/tests $CONTAINER_TMP"
|
|
|
|
ssh "$REMOTE_HOST" "docker exec $CONTAINER sh -c '$RUN_CMD; rc=\$?; $CLEANUP; exit \$rc'"
|