version: '3' # All gradle invocations go through `bash gradlew` (the sh wrapper) so they work # uniformly on Linux/macOS (native bash) and Windows-with-Git-Bash. tasks: dev: desc: "Start backend dev server" ignore_error: true vars: PORT: '{{.PORT | default "8080"}}' AIENGINE_URL: '{{.AIENGINE_URL | default ""}}' env: SERVER_PORT: '{{.PORT}}' cmds: - '{{if .AIENGINE_URL}}AIENGINE_URL={{.AIENGINE_URL}} AIENGINE_ENABLED=true {{end}}bash gradlew :stirling-pdf:bootRun' dev:bundled: desc: "Clean + bootRun with frontend bundled into the backend (single :8080 server)" ignore_error: true cmds: - bash gradlew clean bootRun -PbuildWithFrontend=true build: desc: "Full backend build" cmds: - bash gradlew clean build build:fast: desc: "Build without tests" cmds: - bash gradlew clean build -x test build:ci: desc: "Build for CI (formatting checked separately)" cmds: - bash gradlew build -PnoSpotless test: desc: "Run backend tests" cmds: - bash gradlew test format: desc: "Auto-fix code formatting" cmds: - bash gradlew spotlessApply format:check: desc: "Check code formatting" cmds: - bash gradlew spotlessCheck fix: desc: "Auto-fix backend" cmds: - task: format swagger: desc: "Generate OpenAPI docs" cmds: - bash gradlew :stirling-pdf:copySwaggerDoc sources: - app/core/src/main/java/**/*.java - app/proprietary/src/main/java/**/*.java - app/common/src/main/java/**/*.java generates: - SwaggerDoc.json check: desc: "Backend quality gate" cmds: - task: format:check - task: test version: desc: "Print project version" silent: true cmds: - bash gradlew printVersion --quiet | tail -1 licenses:check: desc: "Check dependency licenses" cmds: - bash gradlew checkLicense --no-parallel licenses:generate: desc: "Check and generate dependency license report" cmds: - bash gradlew checkLicense generateLicenseReport --no-parallel clean: desc: "Clean build artifacts" cmds: - bash gradlew clean