Files
BIU_System_Rezerwacji/Justfile

125 lines
4.1 KiB
Makefile

# Reservation Management System — Justfile
# Wymaga: just, node 20+, npm, docker, docker compose
# Instalacja just: https://github.com/casey/just#installation
# ── Zmienne ─────────────────────────────────────────────────────────────────
API_PORT := "3001"
DEV_PORT := "5173"
# ── Domyślna komenda (lista wszystkich) ──────────────────────────────────────
default:
@just --list
# ── Tryb deweloperski ─────────────────────────────────────────────────────────
# Zainstaluj zależności npm
install:
npm ci
# Uruchom json-server (mock API) w tle na porcie 3001
api:
npx json-server --watch db.json --host 0.0.0.0 --port {{API_PORT}}
# Uruchom serwer deweloperski Vite
dev:
npm run dev
# Uruchom API i Vite równolegle (wymaga GNU parallel lub mprocs)
start: install
#!/usr/bin/env bash
trap 'kill 0' EXIT
npx json-server --watch db.json --host 0.0.0.0 --port {{API_PORT}} &
npm run dev
# ── Testy ────────────────────────────────────────────────────────────────────
# Uruchom testy jednostkowe (Vitest)
test:
npm run test
# Uruchom testy e2e Playwright (wymaga działającego API i dev serwera)
e2e:
node test_rms.mjs
# Uruchom WSZYSTKIE testy (jednostkowe + e2e) — startuje serwery, testuje, zamyka
test-all:
#!/usr/bin/env bash
set -e
echo ">>> Uruchamianie json-server na porcie {{API_PORT}}..."
npx json-server --watch db.json --host 0.0.0.0 --port {{API_PORT}} >/tmp/jss.log 2>&1 &
JSS_PID=$!
echo ">>> Uruchamianie Vite dev server na porcie {{DEV_PORT}}..."
npm run dev >/tmp/vite.log 2>&1 &
VITE_PID=$!
trap "kill $JSS_PID $VITE_PID 2>/dev/null; wait $JSS_PID $VITE_PID 2>/dev/null; true" EXIT
echo ">>> Oczekiwanie na gotowość serwerów..."
sleep 5
echo ""
echo "========================================="
echo " Vitest — testy jednostkowe"
echo "========================================="
npm run test -- --run
echo ""
echo "========================================="
echo " Playwright — testy e2e"
echo "========================================="
node test_rms.mjs
# Uruchom Storybook
storybook:
npm run storybook
# ── Budowanie ────────────────────────────────────────────────────────────────
# Zbuduj aplikację produkcyjną (VITE_API_URL=/api dla Dockera)
build:
VITE_API_URL=/api npm run build
# Zbuduj i sprawdź lokalnie przez preview Vite (wymaga osobnego API)
preview: build
npm run preview
# ── Docker ───────────────────────────────────────────────────────────────────
# Zbuduj obrazy Docker (frontend + api)
docker-build:
docker compose build
# Uruchom aplikację w Dockerze (http://localhost)
docker-up:
docker compose up -d
@echo ""
@echo "Aplikacja dostępna na: http://localhost"
@echo "API (json-server): http://localhost:{{API_PORT}}"
@echo ""
@echo "Zatrzymaj: just docker-down"
# Uruchom w trybie interaktywnym z logami
docker-up-logs:
docker compose up
# Zatrzymaj kontenery
docker-down:
docker compose down
# Zatrzymaj i usuń wolumeny (resetuje db.json do stanu z obrazu)
docker-clean:
docker compose down -v
# Przebuduj i uruchom od zera
docker-rebuild:
docker compose down
docker compose build --no-cache
docker compose up -d
@echo "Aplikacja dostępna na: http://localhost"
# Pokaż logi kontenerów
docker-logs:
docker compose logs -f
# Status kontenerów
docker-ps:
docker compose ps