name: Affinity 3 corpus on: push: branches: [main] paths: ["crates/**", "xtask/**", "Cargo.toml", "Cargo.lock", ".github/workflows/affinity-corpus.yml"] pull_request: paths: ["crates/**", "xtask/**", "Cargo.toml", "Cargo.lock", ".github/workflows/affinity-corpus.yml"] workflow_dispatch: permissions: contents: read concurrency: group: affinity-corpus-${{ github.ref }} cancel-in-progress: true jobs: affinity3: # Tracks @main so suite-wide CI fixes reach every app without a PR in each repository. uses: storytold/craft-common-actions/.github/workflows/gate.yml@main with: timeout-minutes: 30 toolchain: "1.95" # As before: no craft-fonts, apt packages, wasm target or nextest. craft-fonts-ref: "" targets: "" tools: "" dev-debug: "0" env: | AFFINITY_CORPUS_REQUIRED=1 CARGO_PROFILE_TEST_DEBUG=0 # Its own cache, apart from ci.yml's gate. cache-version: v1-affinity command: | # Pinned and checksum-verified corpus. cargo xtask corpus --affinity # Parse every file and freeze actual Affinity 3 feature retention. cargo test -p vectorcraft-affinity --all-features -- --nocapture # Every artboard, native save, SVG, PDF and PSD export. cargo test -p vectorcraft-engine --test affinity_artboards --test affinity_text --test affinity_corpus -- --nocapture