chore: update justfile commands and parameterize healthcheck info
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
106
justfile
Normal file
106
justfile
Normal file
@@ -0,0 +1,106 @@
|
||||
backend_path := "backend"
|
||||
frontend_path := "frontend"
|
||||
|
||||
# Run backend + frontend watchers in split tmux panes (run from inside tmux)
|
||||
[group('dev')]
|
||||
watch:
|
||||
#!/usr/bin/env bash
|
||||
tmux split-window -h 'just watch-frontend'
|
||||
just watch-backend
|
||||
|
||||
# Run the backend with hot reload
|
||||
[group('dev')]
|
||||
watch-backend:
|
||||
cd {{backend_path}} && cargo watch -q -c -w src/ -x run
|
||||
|
||||
# Run the frontend dev server
|
||||
[group('dev')]
|
||||
watch-frontend:
|
||||
cd {{frontend_path}} && pnpm dev
|
||||
|
||||
# Run the backend tests in watch mode (sets up the test DB first)
|
||||
[group('test')]
|
||||
watch-test: test-db-setup
|
||||
cd {{backend_path}} && cargo watch -q -c -w src/ -x test
|
||||
|
||||
# Run the Playwright e2e suite (sets up the test DB + servers)
|
||||
[group('test')]
|
||||
e2e:
|
||||
mkdir -p /tmp/loft-files-test
|
||||
cd {{backend_path}} && set -a && . ./.env.test && set +a && (sqlx database create 2>/dev/null || true) && sqlx migrate run
|
||||
docker compose exec -T db psql -U postgres -d loft_test -c "TRUNCATE users, sessions, file_records CASCADE"
|
||||
cd {{frontend_path}} && pnpm exec playwright test
|
||||
|
||||
# Format backend + frontend
|
||||
[group('quality')]
|
||||
fmt: fmt-backend fmt-frontend
|
||||
|
||||
# Format the backend (cargo fmt)
|
||||
[group('quality')]
|
||||
fmt-backend:
|
||||
cd {{backend_path}} && cargo fmt
|
||||
|
||||
# Format the frontend (prettier)
|
||||
[group('quality')]
|
||||
fmt-frontend:
|
||||
cd {{frontend_path}} && pnpm exec prettier --write .
|
||||
|
||||
# Lint the backend (cargo clippy)
|
||||
[group('quality')]
|
||||
lint-backend:
|
||||
cd {{backend_path}} && cargo clippy
|
||||
|
||||
# Stage the given files (git add)
|
||||
[group('git')]
|
||||
stage +files:
|
||||
git add {{files}}
|
||||
|
||||
# Commit staged changes with a message
|
||||
[group('git')]
|
||||
commit message:
|
||||
git commit -m "{{message}}"
|
||||
|
||||
# Commit staged changes with a Claude co-author trailer
|
||||
[group('git')]
|
||||
co-commit message:
|
||||
git commit -m "{{message}}" -m "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"
|
||||
|
||||
# Push main to both the github and gitea remotes
|
||||
[group('git')]
|
||||
push:
|
||||
git push -u github main && git push -u gitea main
|
||||
|
||||
# Create (if missing) + migrate the test database
|
||||
[group('db')]
|
||||
test-db-setup: db-up
|
||||
cd {{backend_path}} && set -a && . ./.env.test && set +a && (sqlx database create 2>/dev/null || true) && sqlx migrate run
|
||||
|
||||
# Bring up the dev database container
|
||||
[group('db')]
|
||||
db-up:
|
||||
docker compose up -d db
|
||||
|
||||
# Create (if missing) + migrate the dev database
|
||||
[group('db')]
|
||||
db-setup: db-up
|
||||
cd {{backend_path}} && set -a && . ./.env && set +a && (sqlx database create 2>/dev/null || true) && sqlx migrate run
|
||||
|
||||
# Apply pending migrations to the dev database
|
||||
[group('db')]
|
||||
migrate:
|
||||
cd {{backend_path}} && set -a && . ./.env && set +a && sqlx migrate run
|
||||
|
||||
# Open a psql shell on the dev database
|
||||
[group('db')]
|
||||
db-shell:
|
||||
docker compose exec db psql -U postgres -d loft
|
||||
|
||||
# Run a SQL query against the dev database
|
||||
[group('db')]
|
||||
db-query query:
|
||||
docker compose exec db psql -U postgres -d loft -c "{{query}}"
|
||||
|
||||
# Open a shell inside the app container
|
||||
[group('db')]
|
||||
app-shell:
|
||||
docker compose exec app sh
|
||||
Reference in New Issue
Block a user