181 lines
4.5 KiB
Makefile
181 lines
4.5 KiB
Makefile
# DreamChat Justfile
|
|
# https://just.systems/
|
|
#
|
|
# Installation:
|
|
# cargo install just
|
|
# OR
|
|
# brew install just (macOS)
|
|
# OR
|
|
# apt install just (Ubuntu/Debian)
|
|
#
|
|
# Usage:
|
|
# just # Show available commands
|
|
# just dev # Start development servers
|
|
# just build # Build all packages
|
|
# just generate-api # Regenerate OpenAPI spec and API client
|
|
|
|
# Default recipe - show available commands
|
|
default:
|
|
@just --list
|
|
|
|
# =============================================================================
|
|
# Build Commands
|
|
# =============================================================================
|
|
|
|
# Build all packages and apps
|
|
build:
|
|
pnpm build
|
|
|
|
# Build backend only
|
|
build-backend:
|
|
cd apps/backend && pnpm build
|
|
|
|
# Build frontend only
|
|
build-frontend:
|
|
cd apps/frontend && pnpm build
|
|
|
|
# Build shared package only
|
|
build-shared:
|
|
cd packages/shared && pnpm build
|
|
|
|
# Clean all build artifacts
|
|
clean:
|
|
pnpm -r clean
|
|
|
|
# =============================================================================
|
|
# Development Commands
|
|
# =============================================================================
|
|
|
|
# Start development servers (backend + frontend)
|
|
dev:
|
|
pnpm dev
|
|
|
|
# Start backend development server
|
|
dev-backend:
|
|
cd apps/backend && pnpm dev
|
|
|
|
# Start frontend development server
|
|
dev-frontend:
|
|
cd apps/frontend && pnpm dev
|
|
|
|
# =============================================================================
|
|
# API & Code Generation
|
|
# =============================================================================
|
|
|
|
# Generate OpenAPI spec from backend
|
|
openapi-generate:
|
|
cd apps/backend && pnpm run openapi:generate
|
|
|
|
# Generate frontend API client from OpenAPI spec
|
|
api-client-generate:
|
|
cd apps/frontend && pnpm run api:generate
|
|
|
|
# Generate both OpenAPI spec and API client
|
|
generate-api: openapi-generate api-client-generate
|
|
|
|
# =============================================================================
|
|
# Database Commands
|
|
# =============================================================================
|
|
|
|
# Generate Prisma client
|
|
db-generate:
|
|
cd apps/backend && pnpm run db:generate
|
|
|
|
# Run database migrations
|
|
db-migrate:
|
|
cd apps/backend && pnpm run db:migrate
|
|
|
|
# Reset database (destructive!)
|
|
db-reset:
|
|
cd apps/backend && npx prisma migrate reset --force
|
|
|
|
# Open Prisma Studio
|
|
db-studio:
|
|
cd apps/backend && npx prisma studio
|
|
|
|
# Seed database
|
|
db-seed:
|
|
cd apps/backend && pnpm run db:seed
|
|
|
|
# =============================================================================
|
|
# Testing Commands
|
|
# =============================================================================
|
|
|
|
# Run all tests
|
|
test:
|
|
pnpm test
|
|
|
|
# Run backend tests
|
|
test-backend:
|
|
cd apps/backend && pnpm test
|
|
|
|
# Run frontend tests
|
|
test-frontend:
|
|
cd apps/frontend && pnpm test
|
|
|
|
# Run tests in watch mode (backend)
|
|
test-backend-watch:
|
|
cd apps/backend && pnpm run test:watch
|
|
|
|
# =============================================================================
|
|
# Linting & Code Quality
|
|
# =============================================================================
|
|
|
|
# Run linter on all packages
|
|
lint:
|
|
pnpm lint
|
|
|
|
# Run linter on backend
|
|
lint-backend:
|
|
cd apps/backend && pnpm lint
|
|
|
|
# Run linter on frontend
|
|
lint-frontend:
|
|
cd apps/frontend && pnpm lint
|
|
|
|
# =============================================================================
|
|
# Installation & Dependencies
|
|
# =============================================================================
|
|
|
|
# Install all dependencies
|
|
install:
|
|
pnpm install
|
|
|
|
# Update all dependencies
|
|
update:
|
|
pnpm update
|
|
|
|
# =============================================================================
|
|
# Docker Commands
|
|
# =============================================================================
|
|
|
|
# Start all Docker services (db, redis, etc.)
|
|
docker-up:
|
|
docker-compose up -d
|
|
|
|
# Stop all Docker services
|
|
docker-down:
|
|
docker-compose down
|
|
|
|
# View Docker logs
|
|
docker-logs:
|
|
docker-compose logs -f
|
|
|
|
# =============================================================================
|
|
# Utility Commands
|
|
# =============================================================================
|
|
|
|
# Format code with prettier (if installed)
|
|
format:
|
|
npx prettier --write "**/*.{ts,tsx,js,jsx,json,md}"
|
|
|
|
# Check TypeScript types
|
|
typecheck:
|
|
pnpm -r typecheck 2>/dev/null || echo "Type checking..."
|
|
cd apps/backend && npx tsc --noEmit
|
|
cd apps/frontend && npx tsc --noEmit
|
|
|
|
# Full CI check - build, lint, test
|
|
ci: build lint test
|
|
@echo "✅ All CI checks passed!"
|