fix(compositor): hand the whole zoom to the box, not a share of it #488
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| # feat/ai-edition is a long-lived integration branch that PRs land on for | |
| # months at a time. Without it listed here, every one of those PRs merged with | |
| # no lint, no typecheck, no tests and no PR-title check. | |
| # | |
| # release/** is here for the same reason and it cost more: PRs #167, #168 and | |
| # #169 — 30k+ lines of deletion and refactor — merged into release/1.8.0 with | |
| # every one of those jobs skipped, because a release branch matched neither | |
| # pattern. A release branch is the LAST place to run a build unguarded. | |
| on: | |
| pull_request: | |
| branches: [main, feat/ai-edition, "release/**"] | |
| push: | |
| branches: [main, feat/ai-edition, "release/**"] | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/setup | |
| - run: npm run lint | |
| typecheck: | |
| name: Type Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/setup | |
| - run: npx tsc --noEmit | |
| typecheck-tests: | |
| name: Typecheck (tests) | |
| runs-on: ubuntu-latest | |
| # A RATCHET, not a gate. tsconfig.json includes only src + electron and | |
| # excludes **/*.test.ts, so no test file has ever been typechecked, and | |
| # vitest transpiles without checking — fixture types have drifted from the | |
| # schemas they claim to build for years. Failing on the whole backlog would | |
| # put a red X on every PR that nobody can fix, and a check everyone ignores | |
| # is worse than no check. So: fail only if the count GROWS. Lower BASELINE | |
| # whenever you fix some; delete this job's baseline logic at zero. | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/setup | |
| - name: Typecheck tests against a baseline | |
| shell: bash | |
| env: | |
| BASELINE: 80 | |
| run: | | |
| set -uo pipefail | |
| COUNT=$(npx tsc -p tsconfig.test.json --noEmit 2>&1 | grep -c 'error TS' || true) | |
| { | |
| echo "## Test-file typecheck" | |
| echo "" | |
| echo "| | |" | |
| echo "|---|---|" | |
| echo "| Errors now | ${COUNT} |" | |
| echo "| Baseline | ${BASELINE} |" | |
| } >> "$GITHUB_STEP_SUMMARY" | |
| if [ "${COUNT}" -gt "${BASELINE}" ]; then | |
| echo "::error::Test-file type errors went ${BASELINE} -> ${COUNT}. Fix the new ones, or raise BASELINE in ci.yml with a reason." | |
| npx tsc -p tsconfig.test.json --noEmit 2>&1 | grep 'error TS' || true | |
| exit 1 | |
| fi | |
| if [ "${COUNT}" -lt "${BASELINE}" ]; then | |
| echo "::notice::Test-file type errors down to ${COUNT} (baseline ${BASELINE}). Lower BASELINE in ci.yml to lock the win in." | |
| fi | |
| docs: | |
| name: Docs | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # No ./.github/actions/setup: check-docs.mjs imports only node builtins, | |
| # so npm ci would be a minute of install for nothing. Node 22 is here for | |
| # import.meta.dirname (needs >= 20.11). | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - run: npm run docs:check | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/setup | |
| - run: npm run test | |
| - run: npm run test:browser:install | |
| - run: npm run test:browser | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/setup | |
| - run: npx vite build | |
| semantic-pr: | |
| name: Validate PR title (semantic) | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - uses: amannn/action-semantic-pull-request@v5 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| types: | | |
| feat | |
| fix | |
| chore | |
| refactor | |
| perf | |
| docs | |
| test | |
| build | |
| ci | |
| style | |
| revert | |
| requireScope: false |