227 lines
6.4 KiB
YAML
227 lines
6.4 KiB
YAML
version: '3'
|
|
|
|
output: prefixed
|
|
|
|
vars:
|
|
FIND_FREE_PORT_PS: powershell -NoProfile -File scripts/find-free-port.ps1
|
|
FIND_FREE_PORT_SH: bash scripts/find-free-port.sh
|
|
|
|
includes:
|
|
backend:
|
|
taskfile: .taskfiles/backend.yml
|
|
dir: .
|
|
frontend:
|
|
taskfile: .taskfiles/frontend.yml
|
|
dir: frontend
|
|
engine:
|
|
taskfile: .taskfiles/engine.yml
|
|
dir: engine
|
|
docker:
|
|
taskfile: .taskfiles/docker.yml
|
|
dir: .
|
|
desktop:
|
|
taskfile: .taskfiles/desktop.yml
|
|
dir: frontend
|
|
e2e:
|
|
taskfile: .taskfiles/e2e.yml
|
|
dir: .
|
|
pre-commit:
|
|
taskfile: .taskfiles/pre-commit.yml
|
|
dir: .
|
|
|
|
tasks:
|
|
# ============================================================
|
|
# Help (shown when you run `task` with no arguments)
|
|
# ============================================================
|
|
|
|
default:
|
|
desc: "List the most common commands"
|
|
silent: true
|
|
cmds:
|
|
- |
|
|
echo "Common commands (run 'task --list' to see all):"
|
|
echo ""
|
|
echo " task dev Start backend & frontend on free ports"
|
|
echo " task backend:dev Start backend on default port"
|
|
echo " task frontend:dev Start frontend on default port"
|
|
echo " task desktop:dev Start desktop app"
|
|
echo " task check Quality gate (lint, typecheck, test, etc.)"
|
|
|
|
# ============================================================
|
|
# Setup & Prerequisites
|
|
# ============================================================
|
|
|
|
install:
|
|
desc: "Install all project dependencies"
|
|
cmds:
|
|
- task: frontend:install
|
|
- task: engine:install
|
|
|
|
# ============================================================
|
|
# Development
|
|
# ============================================================
|
|
|
|
dev:
|
|
desc: "Start backend + frontend concurrently on free ports"
|
|
vars:
|
|
PORTS:
|
|
sh: '{{if eq OS "windows"}}{{.FIND_FREE_PORT_PS}} 8080 5173{{else}}{{.FIND_FREE_PORT_SH}} 8080 5173{{end}}'
|
|
BACKEND_PORT: '{{index (splitList "\n" .PORTS) 0}}'
|
|
FRONTEND_PORT: '{{index (splitList "\n" .PORTS) 1}}'
|
|
deps:
|
|
- task: backend:dev
|
|
vars:
|
|
PORT: '{{.BACKEND_PORT}}'
|
|
- task: frontend:dev
|
|
vars:
|
|
PORT: '{{.FRONTEND_PORT}}'
|
|
BACKEND_URL: 'http://localhost:{{.BACKEND_PORT}}'
|
|
OPEN: "true"
|
|
|
|
dev:portal:
|
|
desc: "Start backend + editor; the portal is an admin route at /portal"
|
|
vars:
|
|
PORTS:
|
|
sh: '{{if eq OS "windows"}}{{.FIND_FREE_PORT_PS}} 8080 5173{{else}}{{.FIND_FREE_PORT_SH}} 8080 5173{{end}}'
|
|
BACKEND_PORT: '{{index (splitList "\n" .PORTS) 0}}'
|
|
EDITOR_PORT: '{{index (splitList "\n" .PORTS) 1}}'
|
|
deps:
|
|
- task: backend:dev
|
|
vars:
|
|
PORT: '{{.BACKEND_PORT}}'
|
|
SECURITY_ENABLELOGIN: "true"
|
|
POLICIES_ENABLED: "true"
|
|
- task: frontend:dev:proprietary
|
|
vars:
|
|
PORT: '{{.EDITOR_PORT}}'
|
|
BACKEND_URL: 'http://localhost:{{.BACKEND_PORT}}'
|
|
OPEN: "true"
|
|
|
|
dev:saas:
|
|
desc: "Start SaaS backend + frontend concurrently on free ports"
|
|
cmds:
|
|
- task: dev:_all
|
|
vars: { FRONTEND: saas, BACKEND: saas }
|
|
|
|
dev:all:
|
|
desc: "Start backend + frontend + engine concurrently on free ports"
|
|
cmds:
|
|
- task: dev:_all
|
|
|
|
dev:_all:
|
|
internal: true
|
|
vars:
|
|
FRONTEND: '{{.FRONTEND | default "proprietary"}}'
|
|
BACKEND: '{{.BACKEND | default "proprietary"}}'
|
|
PORTS:
|
|
sh: '{{if eq OS "windows"}}{{.FIND_FREE_PORT_PS}} 8080 5173 5001{{else}}{{.FIND_FREE_PORT_SH}} 8080 5173 5001{{end}}'
|
|
BACKEND_PORT: '{{index (splitList "\n" .PORTS) 0}}'
|
|
FRONTEND_PORT: '{{index (splitList "\n" .PORTS) 1}}'
|
|
ENGINE_PORT: '{{index (splitList "\n" .PORTS) 2}}'
|
|
deps:
|
|
- task: engine:dev
|
|
vars:
|
|
PORT: '{{.ENGINE_PORT}}'
|
|
- task: 'backend:dev:{{.BACKEND}}'
|
|
vars:
|
|
PORT: '{{.BACKEND_PORT}}'
|
|
AIENGINE_URL: 'http://localhost:{{.ENGINE_PORT}}'
|
|
AIENGINE_ENABLED: "true"
|
|
- task: 'frontend:dev:{{.FRONTEND}}'
|
|
vars:
|
|
PORT: '{{.FRONTEND_PORT}}'
|
|
BACKEND_URL: 'http://localhost:{{.BACKEND_PORT}}'
|
|
OPEN: "true"
|
|
|
|
# ============================================================
|
|
# Build
|
|
# ============================================================
|
|
|
|
build:
|
|
desc: "Build all components"
|
|
cmds:
|
|
- task: backend:build
|
|
- task: frontend:build
|
|
|
|
# ============================================================
|
|
# Test
|
|
# ============================================================
|
|
|
|
test:
|
|
desc: "Run ALL tests (backend + frontend + engine)"
|
|
cmds:
|
|
- task: backend:test
|
|
- task: frontend:test
|
|
- task: engine:test
|
|
|
|
# ============================================================
|
|
# Lint & Format
|
|
# ============================================================
|
|
|
|
lint:
|
|
desc: "Run all linters"
|
|
cmds:
|
|
- task: frontend:lint
|
|
- task: engine:lint
|
|
|
|
fix:
|
|
desc: "Auto-fix all components"
|
|
cmds:
|
|
- task: backend:fix
|
|
- task: frontend:fix
|
|
- task: engine:fix
|
|
|
|
format:
|
|
desc: "Auto-fix formatting across all components"
|
|
cmds:
|
|
- task: backend:format
|
|
- task: frontend:format
|
|
- task: engine:format
|
|
|
|
format:check:
|
|
desc: "Check formatting across all components"
|
|
cmds:
|
|
- task: backend:format:check
|
|
- task: frontend:format:check
|
|
- task: engine:format:check
|
|
|
|
# ============================================================
|
|
# Code generation
|
|
# ============================================================
|
|
|
|
tool-models:
|
|
desc: "Generate all API models from the Java OpenAPI spec"
|
|
cmds:
|
|
- task: frontend:tool-models
|
|
- task: engine:tool-models
|
|
|
|
# ============================================================
|
|
# Quality Gate
|
|
# ============================================================
|
|
|
|
check:
|
|
desc: "Quick quality gate for local development"
|
|
cmds:
|
|
- task: backend:check
|
|
- task: frontend:check
|
|
- task: engine:check
|
|
|
|
check:all:
|
|
desc: "Full CI quality gate"
|
|
cmds:
|
|
- task: backend:check
|
|
- task: frontend:check:all
|
|
- task: engine:check
|
|
|
|
# ============================================================
|
|
# Clean
|
|
# ============================================================
|
|
|
|
clean:
|
|
desc: "Clean all build artifacts"
|
|
cmds:
|
|
- task: backend:clean
|
|
- task: frontend:clean
|
|
- task: engine:clean
|
|
- task: pre-commit:clean
|