101 lines
2.3 KiB
Makefile
101 lines
2.3 KiB
Makefile
# RMI Development — Justfile
|
|
# https://github.com/casey/just
|
|
#
|
|
# Quick reference:
|
|
# just # show available commands
|
|
# just lint # run all linters
|
|
# just test # run tests
|
|
# just sync # sync code to VPS
|
|
# just deploy # sync + restart backend
|
|
|
|
default:
|
|
@just --list
|
|
|
|
# === CODE QUALITY ===
|
|
|
|
lint:
|
|
ruff check app/
|
|
ruff format --check app/
|
|
|
|
format:
|
|
ruff format app/
|
|
ruff check --fix app/
|
|
|
|
typecheck:
|
|
mypy app/ --ignore-missing-imports
|
|
|
|
# === TESTING ===
|
|
|
|
test:
|
|
pytest -x -v --tb=short
|
|
|
|
test-fast:
|
|
pytest -x -q -n auto
|
|
|
|
# === SYNC & DEPLOY ===
|
|
|
|
sync:
|
|
bash scripts/sync.sh all
|
|
|
|
sync-backend:
|
|
bash scripts/sync.sh backend
|
|
|
|
sync-frontend:
|
|
bash scripts/sync.sh frontend
|
|
|
|
deploy: sync
|
|
ssh -i ~/.ssh/id_ed25519 root@167.86.116.51 "docker restart rmi_backend"
|
|
@echo "Deployed + restarted"
|
|
|
|
# === DOCKER (local) ===
|
|
|
|
docker-build:
|
|
docker build -t rmi-backend:dev .
|
|
|
|
docker-run:
|
|
docker run -p 8000:8000 --env-file .env rmi-backend:dev
|
|
|
|
# === WATCH ===
|
|
|
|
watch-backend:
|
|
watchexec -e py -w app/ -w main.py -- "bash scripts/sync.sh backend"
|
|
|
|
watch-frontend:
|
|
cd ../rmi-frontend && npm run dev
|
|
|
|
# === UTILS ===
|
|
|
|
clean:
|
|
find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
|
|
find . -type f -name "*.pyc" -delete
|
|
|
|
stats:
|
|
@echo "Python files: $$(find app -name '*.py' | wc -l)"
|
|
@echo "Lines: $$(find app -name '*.py' -exec cat {} + | wc -l)"
|
|
@echo "Tests: $$(find . -name 'test_*.py' | wc -l)"
|
|
|
|
check-vps:
|
|
@ssh -i ~/.ssh/id_ed25519 root@167.86.116.51 "docker ps --filter name=rmi_backend --format '{{.Status}}' && curl -s localhost:8000/live"
|
|
|
|
# === FRONTEND ===
|
|
|
|
sync-frontend-src:
|
|
scp -i ~/.ssh/id_ed25519 ~/rmi/rmi-frontend/src/services/rmi/api.ts root@167.86.116.51:/root/frontend/src/services/rmi/api.ts
|
|
@echo "Frontend api.ts synced"
|
|
|
|
build-deploy-frontend:
|
|
ssh -i ~/.ssh/id_ed25519 root@167.86.116.51 'cd /root/frontend && npm run build 2>&1 | tail -3 && cp -r dist/* /var/www/rmi/ && echo "Frontend deployed"'
|
|
|
|
deploy-all: sync sync-frontend-src build-deploy-frontend
|
|
@echo "Full deploy complete"
|
|
|
|
# === CI/CD ===
|
|
|
|
ship:
|
|
bash ~/rmi/scripts/cicd.sh
|
|
|
|
ship-fast:
|
|
bash ~/rmi/scripts/cicd.sh --skip-tests
|
|
|
|
ship-code:
|
|
bash ~/rmi/scripts/cicd.sh --skip-deploy
|