116 lines
2.5 KiB
YAML
116 lines
2.5 KiB
YAML
# yaml-language-server: $schema=https://taskfile.dev/schema.json
|
|
version: '3'
|
|
|
|
vars:
|
|
DEV_COMPOSE: docker compose -f compose.yaml -f compose.dev.yaml
|
|
|
|
tasks:
|
|
default:
|
|
desc: List available commands
|
|
silent: true
|
|
cmds:
|
|
- task --list
|
|
|
|
dev:
|
|
desc: Start both services with hot reload
|
|
summary: |
|
|
Build and start the API and webapp with Compose Watch.
|
|
Webapp: http://localhost:5173; API: http://localhost:8080.
|
|
Ctrl+C stops the services. Run task dev:down to remove containers.
|
|
Override occupied ports with API_PORT=18080 DEV_WEB_PORT=15173 task dev.
|
|
Requires Docker Compose 2.32+; native Go, Node and pnpm are unnecessary.
|
|
cmds:
|
|
- '{{.DEV_COMPOSE}} up --build --watch'
|
|
|
|
dev:down:
|
|
desc: Stop and remove development containers
|
|
cmds:
|
|
- '{{.DEV_COMPOSE}} down'
|
|
|
|
dev:logs:
|
|
desc: Follow development service logs
|
|
cmds:
|
|
- '{{.DEV_COMPOSE}} logs --follow --tail 100'
|
|
|
|
dev:status:
|
|
desc: Show development service status
|
|
cmds:
|
|
- '{{.DEV_COMPOSE}} ps'
|
|
|
|
install:
|
|
desc: Download native server and webapp dependencies
|
|
cmds:
|
|
- task: server:install
|
|
- task: webapp:install
|
|
|
|
check:
|
|
desc: Check Go code, webapp linting and TypeScript types
|
|
cmds:
|
|
- task: server:check
|
|
- task: webapp:check
|
|
|
|
test:
|
|
desc: Run server race tests and webapp component tests
|
|
cmds:
|
|
- task: server:test
|
|
- task: webapp:test
|
|
|
|
build:
|
|
desc: Build both production Docker images
|
|
cmds:
|
|
- docker compose build
|
|
|
|
format:
|
|
desc: Format Go code and apply safe Biome fixes
|
|
cmds:
|
|
- task: server:format
|
|
- task: webapp:format
|
|
|
|
server:install:
|
|
desc: Download Go modules
|
|
dir: server
|
|
cmds:
|
|
- go mod download
|
|
|
|
server:check:
|
|
desc: Run Go vet
|
|
dir: server
|
|
cmds:
|
|
- go vet ./...
|
|
|
|
server:test:
|
|
desc: Run Go tests with race detection
|
|
dir: server
|
|
cmds:
|
|
- go test -race ./...
|
|
|
|
server:format:
|
|
desc: Format server Go source
|
|
dir: server
|
|
cmds:
|
|
- go fmt ./...
|
|
|
|
webapp:install:
|
|
desc: Install webapp dependencies from the lockfile
|
|
dir: webapp
|
|
cmds:
|
|
- pnpm install --frozen-lockfile
|
|
|
|
webapp:check:
|
|
desc: Run Biome and TypeScript checks
|
|
dir: webapp
|
|
cmds:
|
|
- pnpm check
|
|
|
|
webapp:test:
|
|
desc: Run Vitest component tests
|
|
dir: webapp
|
|
cmds:
|
|
- pnpm test
|
|
|
|
webapp:format:
|
|
desc: Apply Biome formatting and safe fixes
|
|
dir: webapp
|
|
cmds:
|
|
- pnpm format
|