125 lines
4.1 KiB
Makefile
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
|