mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-14 10:34:06 +02:00
## Add Taskfile for unified dev workflow ### Summary - Introduces [Taskfile](https://taskfile.dev/) as the single CLI entry point for all development workflows across backend, frontend, engine, Docker, and desktop - ~80 tasks organized into 6 namespaces: `backend:`, `frontend:`, `engine:`, `docker:`, `desktop:`, plus root-level composites - All CI workflows migrated to use Task - Deletes `engine/Makefile` and `scripts/build-tauri-jlink.{sh,bat}` — replaced by Task equivalents - Removes redundant npm scripts (`dev`, `build`, `prep`, `lint`, `test`, `typecheck:all`) from `package.json` - Smart dependency caching: `sources`/`status`/`generates` fingerprinting, CI-aware `npm ci` vs `npm install`, `run: once` for parallel dep deduplication ### What this does NOT do - Does not replace Gradle, npm, or Docker — Taskfile is a thin orchestration wrapper - Does not change application code or behavior ### Install ``` npm install -g @go-task/cli # or: brew install go-task, winget install Task.Task ``` ### Quick start ``` task --list # discover all tasks task install # install all deps task dev # start backend + frontend task dev:all # also start AI engine task test # run all tests task check # quick quality gate (local dev) task check:all # full CI quality gate ``` ### Test plan - [ ] Install `task` CLI and run `task --list` — verify all tasks display - [ ] Run `task install` — verify frontend + engine deps install - [ ] Run `task dev` — verify backend + frontend start, Ctrl+C exits cleanly - [ ] Run `task frontend:check` — verify typecheck + lint + test pass - [ ] Run `task desktop:dev` — verify jlink builds are cached on second run - [ ] Verify CI passes on all workflows --------- Co-authored-by: James Brunton <[email protected]>
112 lines
2.8 KiB
YAML
112 lines
2.8 KiB
YAML
version: '3'
|
|
|
|
tasks:
|
|
dev:
|
|
desc: "Start backend dev server"
|
|
ignore_error: true
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat :stirling-pdf:bootRun
|
|
platforms: [windows]
|
|
- cmd: ./gradlew :stirling-pdf:bootRun
|
|
platforms: [linux, darwin]
|
|
|
|
build:
|
|
desc: "Full backend build"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat clean build
|
|
platforms: [windows]
|
|
- cmd: ./gradlew clean build
|
|
platforms: [linux, darwin]
|
|
|
|
build:fast:
|
|
desc: "Build without tests"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat clean build -x test
|
|
platforms: [windows]
|
|
- cmd: ./gradlew clean build -x test
|
|
platforms: [linux, darwin]
|
|
|
|
build:ci:
|
|
desc: "Build for CI (formatting checked separately)"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat build -PnoSpotless
|
|
platforms: [windows]
|
|
- cmd: ./gradlew build -PnoSpotless
|
|
platforms: [linux, darwin]
|
|
|
|
test:
|
|
desc: "Run backend tests"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat test
|
|
platforms: [windows]
|
|
- cmd: ./gradlew test
|
|
platforms: [linux, darwin]
|
|
|
|
format:
|
|
desc: "Auto-fix code formatting"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat spotlessApply
|
|
platforms: [windows]
|
|
- cmd: ./gradlew spotlessApply
|
|
platforms: [linux, darwin]
|
|
|
|
format:check:
|
|
desc: "Check code formatting"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat spotlessCheck
|
|
platforms: [windows]
|
|
- cmd: ./gradlew spotlessCheck
|
|
platforms: [linux, darwin]
|
|
|
|
fix:
|
|
desc: "Auto-fix backend"
|
|
cmds:
|
|
- task: format
|
|
|
|
swagger:
|
|
desc: "Generate OpenAPI docs"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat :stirling-pdf:generateOpenApiDocs
|
|
platforms: [windows]
|
|
- cmd: ./gradlew :stirling-pdf:generateOpenApiDocs
|
|
platforms: [linux, darwin]
|
|
|
|
check:
|
|
desc: "Backend quality gate"
|
|
cmds:
|
|
- task: format:check
|
|
- task: test
|
|
|
|
version:
|
|
desc: "Print project version"
|
|
silent: true
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat printVersion --quiet | tail -1
|
|
platforms: [windows]
|
|
- cmd: ./gradlew printVersion --quiet | tail -1
|
|
platforms: [linux, darwin]
|
|
|
|
licenses:check:
|
|
desc: "Check dependency licenses"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat checkLicense --no-parallel
|
|
platforms: [windows]
|
|
- cmd: ./gradlew checkLicense --no-parallel
|
|
platforms: [linux, darwin]
|
|
|
|
licenses:generate:
|
|
desc: "Check and generate dependency license report"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat checkLicense generateLicenseReport --no-parallel
|
|
platforms: [windows]
|
|
- cmd: ./gradlew checkLicense generateLicenseReport --no-parallel
|
|
platforms: [linux, darwin]
|
|
|
|
clean:
|
|
desc: "Clean build artifacts"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat clean
|
|
platforms: [windows]
|
|
- cmd: ./gradlew clean
|
|
platforms: [linux, darwin]
|