mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-14 10:34:06 +02:00
## Description Consolidates Playwright running under cohesive Task namespaces, isolates Playwright state from the developer's local working tree, and swaps CI's frontend webserver from `vite` dev to `vite preview` against a pre-built `dist/`. ### `e2e:*` namespace Renames `.taskfiles/testing.yml` to `.taskfiles/e2e.yml` and consolidates everything Playwright-related under one `e2e:` namespace: - `e2e:stubbed` / `e2e:live` / `e2e:enterprise` / `e2e:cross-browser`: project-specific runners - `e2e:check` (no-Docker subset) and `e2e:check:all` (full) - `e2e:oauth:up` / `:down`, `e2e:saml:up` / `:down`: symmetric lifecycle for the keycloak compose stacks - `e2e:install`: Playwright browser install - `docker:test`: full Docker integration suite The redundant `frontend:test:e2e:*` project shortcuts are removed. CI workflows (`e2e-stubbed.yml`, `e2e-live.yml`, `build-enterprise.yml`, `nightly.yml`) are updated to call the new task names. ### Isolated Playwright state New `STIRLING_BASE_PATH` (and `-Dstirling.base-path=`) override in `InstallationPathConfig` redirects the entire state tree (configs, backups, customFiles, pipeline, logs) at startup. `task e2e:live` points it at `.test-state/playwright/` (purged on every invocation) so the suite never touches the developer's local DB, settings.yml or backups. `task e2e:live` auto-spawns gradle, waits for `/api/v1/info/status` to come up, runs Playwright, then tears down the whole backend process tree. ### CI runs Playwright against `vite preview` Builds the frontend up-front with `VITE_BUILD_FOR_PREVIEW=1` (forces absolute base so deep SPA routes resolve `/assets/...`) and the playwright `webServer` now uses `vite preview --port 5173 --strictPort` in CI. Avoids the per-page on-demand transform cost that was blowing the 30s navigation timeout under `--workers=3` on `all-tool-pages-load.spec.ts`. Local dev keeps `vite` dev for HMR. ### OAuth/SAML compose helpers `start-oauth-test.sh` and `start-saml-test.sh` gain a `--license-key <KEY>` (`-k`) flag so CI and scripted runs can skip the interactive license prompt. `start-oauth-test.sh` also moves from `for arg in "$@"` to a `while`-with-`shift` arg loop to support multi-arg flags consistently with the SAML script. ### Backend gradlew unification Drops the per-platform `cmd /c gradlew.bat` branches from `backend.yml` and routes every gradle invocation through `bash gradlew`. Works uniformly on Linux/macOS and Windows-with-Git-Bash. ### Compare.tsx flake fix (re-land of [#6316](https://github.com/Stirling-Tools/Stirling-PDF/pull/6316)) Piggybacks Anthony's never-merged fix from #6316. Without it, `e2e:stubbed` continues to flake under `--workers=3` on `compare.spec.ts`'s second-upload case via a React "Maximum update depth exceeded" infinite loop in the Compare auto-fill effect. CI traces from recent failed runs match exactly; 10 local runs of `compare.spec.ts` with `CI=1 --workers=3` pass cleanly with the fix applied. --------- Co-authored-by: James Brunton <[email protected]>
64 lines
1.6 KiB
YAML
64 lines
1.6 KiB
YAML
version: '3'
|
|
|
|
vars:
|
|
COMPOSE_DIR: docker/compose
|
|
EMBEDDED_DIR: docker/embedded
|
|
|
|
tasks:
|
|
build:
|
|
desc: "Build standard Docker image"
|
|
cmds:
|
|
- docker build -t stirling-pdf -f {{.EMBEDDED_DIR}}/Dockerfile .
|
|
|
|
build:fat:
|
|
desc: "Build fat Docker image (all features)"
|
|
cmds:
|
|
- docker build -t stirling-pdf-fat -f {{.EMBEDDED_DIR}}/Dockerfile.fat .
|
|
|
|
build:ultra-lite:
|
|
desc: "Build ultra-lite Docker image"
|
|
cmds:
|
|
- docker build -t stirling-pdf-ultra-lite -f {{.EMBEDDED_DIR}}/Dockerfile.ultra-lite .
|
|
|
|
build:frontend:
|
|
desc: "Build frontend-only Docker image"
|
|
cmds:
|
|
- docker build -t stirling-pdf-frontend -f docker/frontend/Dockerfile .
|
|
|
|
build:engine:
|
|
desc: "Build engine Docker image"
|
|
dir: engine
|
|
cmds:
|
|
- docker build -t stirling-pdf-engine .
|
|
|
|
up:
|
|
desc: "Start standard docker compose stack"
|
|
cmds:
|
|
- docker compose -f {{.COMPOSE_DIR}}/docker-compose.yml up -d
|
|
|
|
up:fat:
|
|
desc: "Start fat docker compose stack"
|
|
cmds:
|
|
- docker compose -f {{.COMPOSE_DIR}}/docker-compose.fat.yml up -d
|
|
|
|
up:ultra-lite:
|
|
desc: "Start ultra-lite docker compose stack"
|
|
cmds:
|
|
- docker compose -f {{.COMPOSE_DIR}}/docker-compose.ultra-lite.yml up -d
|
|
|
|
down:
|
|
desc: "Stop all running docker compose stacks"
|
|
cmds:
|
|
- docker compose -f {{.COMPOSE_DIR}}/docker-compose.yml down
|
|
|
|
logs:
|
|
desc: "Tail docker compose logs"
|
|
cmds:
|
|
- docker compose -f {{.COMPOSE_DIR}}/docker-compose.yml logs -f
|
|
|
|
test:
|
|
desc: "Run full Docker integration test suite (builds all variants and tests them)"
|
|
ignore_error: true
|
|
cmds:
|
|
- bash testing/test.sh {{.CLI_ARGS}}
|