Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,11 @@ jobs:
- name: "Run Lint"
run: bun run lint

- name: "Build Server"
run: bun run build:server

- name: "Build Worker"
run: bun run build:worker
- name: "Run Build"
run: bun run build

- name: "Verify Build Output"
run: |
ls -lh dist/
test -f dist/server/serve.js || exit 1
test -f dist/worker/index.js || exit 1
test -f dist/src/serve.js || exit 1
test -f dist/src/bull/index.js || exit 1
11 changes: 6 additions & 5 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
bun install
bunx lint-staged
make db-generate
make db-migrate
bun run build:all
bun install
bun lint-staged
bunx drizzle-kit generate
bunx drizzle-kit migrate
bun run tsc --noEmit
bun run build
134 changes: 69 additions & 65 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,113 +1,117 @@
.PHONY: help dev build start lint format seed db-generate db-migrate db-push db-pull db-studio db-drop dev-worker build-worker start-worker dev-server build-server start-server dev-all build-all start-all
.PHONY: help install dev dev-server dev-worker build start start-server start-worker lint lint-fix format typecheck db-generate db-migrate db-push db-pull db-studio db-drop db-seed db-clickhouse-migrate db-clickhouse-status fresh reset

# Default target
help:
@echo "Available commands:"
@echo ""
@echo " Setup:"
@echo " install - Install dependencies"
@echo ""
@echo " Development:"
@echo " dev-api - Start API development server with hot reload"
@echo " build-api - Build the API application"
@echo " start-api - Start the API production server"
@echo " dev-server - Start SERVER development server with hot reload"
@echo " build-server - Build the SERVER application"
@echo " start-server - Start the SERVER production server"
@echo " dev-worker - Start WORKER development with hot reload"
@echo " build-worker - Build the WORKER application"
@echo " start-worker - Start the WORKER production service"
@echo " dev-all - Run server and worker in dev mode concurrently"
@echo " build-all - Build server and worker concurrently"
@echo " start-all - Run server and worker in production concurrently"
@echo " lint - Run ESLint"
@echo " format - Format code with Prettier"
@echo " seed - Run database seeder"
@echo " dev - Start server and worker with hot reload"
@echo " dev-server - Start API server only with hot reload"
@echo " dev-worker - Start worker only with hot reload"
@echo ""
@echo " Build:"
@echo " build - Build the application"
@echo ""
@echo " Database (Drizzle):"
@echo " db-generate - Generate migration files"
@echo " db-migrate - Run pending migrations"
@echo " db-push - Push schema to database (dev only)"
@echo " db-pull - Pull schema from database"
@echo " db-studio - Open Drizzle Studio"
@echo " db-drop - Drop all tables (dangerous!)"
@echo " Production:"
@echo " start - Start server and worker"
@echo " start-server - Start API server only"
@echo " start-worker - Start worker only"
@echo ""
@echo " Code Quality:"
@echo " lint - Run ESLint"
@echo " lint-fix - Fix ESLint issues"
@echo " format - Format code with Prettier"
@echo " typecheck - Run TypeScript type checking"
@echo ""
@echo " Database (PostgreSQL/Drizzle):"
@echo " db-generate - Generate migration files"
@echo " db-migrate - Run pending migrations"
@echo " db-push - Push schema to database (dev only)"
@echo " db-pull - Pull schema from database"
@echo " db-studio - Open Drizzle Studio"
@echo " db-drop - Drop all tables (dangerous!)"
@echo " db-seed - Seed database with initial data"
@echo ""
@echo " Database (ClickHouse):"
@echo " migrate-clickhouse - Run ClickHouse migrations"
@echo " migrate-clickhouse-status - Check status of ClickHouse migrations"
@echo " db-clickhouse-migrate - Run ClickHouse migrations"
@echo " db-clickhouse-status - Check ClickHouse migration status"
@echo ""
@echo " Workflows:"
@echo " fresh - Drop, push schema, and seed (dev only)"
@echo " reset - Generate, migrate, and seed"

install:
bun install

# Development commands
dev-api:
bun run dev:api

build-api:
bun run build:api

start-api:
bun run start:api
dev:
bun run dev

dev-server:
bun run dev:server

build-server:
bun run build:server

start-server:
bun run start:server

dev-worker:
bun run dev:worker

build-worker:
bun run build:worker
build:
bun run build

start:
bun run start

start-server:
bun run start:server

start-worker:
bun run start:worker

# Code quality
lint:
bun run lint

lint-fix:
bun run lint:fix

format:
bun run format

db-seed:
bun run ./src/libs/database/seed/index.ts

migrate-clickhouse:
bun run ./src/libs/database/clickhouse/scripts/migrate.ts migrate

migrate-clickhouse-status:
bun run ./src/libs/database/clickhouse/scripts/migrate.ts status
typecheck:
bun run typecheck

# Database (PostgreSQL/Drizzle)
db-generate:
bunx --bun drizzle-kit generate
bun run db:generate

db-migrate:
bunx --bun drizzle-kit migrate
bun run db:migrate

db-push:
bunx --bun drizzle-kit push
bun run db:push

db-pull:
bunx --bun drizzle-kit introspect
bun run db:pull

db-studio:
bunx --bun drizzle-kit studio
bun run db:studio

db-drop:
bunx --bun drizzle-kit drop
bun run db:drop

dev-all:
bun run dev:all
db-seed:
bun run db:seed

build-all:
bun run build:all
# Database (ClickHouse)
db-clickhouse-migrate:
bun run db:clickhouse:migrate

start-all:
bun run start:all
db-clickhouse-status:
bun run db:clickhouse:status

# Combined commands for common workflows
fresh: db-drop db-push seed
# Combined workflows
fresh: db-drop db-push db-seed
@echo "Database refreshed and seeded!"

reset: db-generate db-migrate seed
reset: db-generate db-migrate db-seed
@echo "Database migrated and seeded!"
26 changes: 12 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,14 @@ make db-seed
Start the development server:

```bash
# Start both server and worker
make dev

# Start API server only
make dev-server

# Start worker only
make dev-worker

# Start both server and worker
make dev-all
```

The API will be available at `http://localhost:8001`
Expand Down Expand Up @@ -116,20 +116,18 @@ src/
### Development

```bash
make dev-server # Start server with hot reload
make dev-worker # Start worker with hot reload
make dev-all # Start server and worker concurrently
make dev # Start server and worker with hot reload
make dev-server # Start server only with hot reload
make dev-worker # Start worker only with hot reload
```

### Production Build

```bash
make build-server # Build server
make build-worker # Build worker
make build-all # Build both server and worker
make start-server # Start production server
make start-worker # Start production worker
make start-all # Start both in production
make build # Build the application
make start # Start server and worker
make start-server # Start production server only
make start-worker # Start production worker only
```

### Code Quality
Expand All @@ -155,8 +153,8 @@ make db-seed # Run database seeders
### Database (ClickHouse)

```bash
make migrate-clickhouse # Run ClickHouse migrations
make migrate-clickhouse-status # Check migration status
make db-clickhouse-migrate # Run ClickHouse migrations
make db-clickhouse-status # Check migration status
```

### Quick Workflows
Expand Down
Loading