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]>
66 lines
1.7 KiB
YAML
66 lines
1.7 KiB
YAML
build: &build
|
|
- build.gradle
|
|
- app/(common|core|proprietary)/build.gradle
|
|
|
|
openapi: &openapi
|
|
- *build
|
|
- app/(common|core|proprietary)/src/main/java/**
|
|
|
|
docker-base: &docker-base
|
|
- docker/base/Dockerfile
|
|
- ".github/workflows/push-docker-base.yml"
|
|
|
|
docker: &docker
|
|
- docker/embedded/Dockerfile
|
|
- docker/embedded/Dockerfile.fat
|
|
- docker/embedded/Dockerfile.ultra-lite
|
|
- ".github/workflows/build.yml"
|
|
- ".github/workflows/push-docker.yml"
|
|
- scripts/init.sh
|
|
- scripts/init-without-ocr.sh
|
|
- exampleYmlFiles/**
|
|
- *docker-base
|
|
|
|
project: &project
|
|
- app/(common|core|proprietary)/src/(main|test)/java/**
|
|
- *build
|
|
- "app/(common|core|proprietary)/src/(main|test)/resources/**/!(messages_*.properties|*.md)*"
|
|
- exampleYmlFiles/**
|
|
- gradle/**
|
|
- libs/**
|
|
- "testing/**/!(requirements*.txt|requirements*.in)*"
|
|
- *docker
|
|
- *docker-base
|
|
- gradle.properties
|
|
- gradlew
|
|
- gradlew.bat
|
|
- launch4jConfig.xml
|
|
- settings.gradle
|
|
- frontend/**
|
|
- docker/**
|
|
- scripts/RestartHelper.java
|
|
|
|
frontend: &frontend
|
|
- frontend/**
|
|
- .github/workflows/testdriver.yml
|
|
- testing/**
|
|
- docker/**
|
|
- scripts/translations/*.py
|
|
- .taskfiles/desktop.yml
|
|
- scripts/convert_cff_to_ttf.py
|
|
- scripts/harvest_type3_fonts.py
|
|
- scripts/ignore_translation.toml
|
|
- scripts/index_type3_catalogue.py
|
|
- scripts/summarize_type3_signatures.py
|
|
- scripts/type3_to_cff.py
|
|
- scripts/update_type3_library.py
|
|
|
|
licenses-frontend: &licenses-frontend
|
|
- ".github/workflows/frontend-backend-licenses-update.yml"
|
|
- "frontend/package.json"
|
|
- "frontend/package-lock.json"
|
|
- "frontend/scripts/generate-licenses.js"
|
|
|
|
licenses-backend: &licenses-backend
|
|
- ".github/workflows/frontend-backend-licenses-update.yml"
|
|
- *build |