chore: cascade bump packages after types/utils release pins #1172
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 | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| # One job: install/build/prepare once, then run everything sequentially. | |
| # Avoids paying for duplicated setup across parallel jobs. | |
| jobs: | |
| ci: | |
| runs-on: ubuntu-latest | |
| env: | |
| # Build shared fixtures in parallel. The runner has 4 vCPU / 15 GiB with | |
| # ~14 GiB free (the earlier ERR_IPC_CHANNEL_CLOSED crashes were caused by | |
| # tests killing processes by port, not by memory pressure). | |
| FIXTURE_BUILD_CONCURRENCY: 4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| # Full history: check:versions diffs against the PR merge-base / last tag. | |
| fetch-depth: 0 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 9.14.2 | |
| run_install: false | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - uses: actions/cache@v4 | |
| with: | |
| path: | | |
| test/.fixture-builds | |
| # Source-only globs: broad test/fixtures/** also matches .output-shared | |
| # after e2e and hashFiles fails when saving the cache at job end. | |
| key: e2e-shared-${{ runner.os }}-${{ hashFiles('test/setup/manifest.ts', 'test/setup/shared-fixtures-core.ts', 'test/setup/build-fixture-worker.mjs', 'test/fixtures/**/nuxt.config.ts', 'test/fixtures/**/package.json', 'test/fixtures/**/app.vue', 'test/fixtures/**/app/**', 'test/fixtures/**/pages/**', 'test/fixtures/**/components/**', 'test/fixtures/**/locales/**', 'test/fixtures/**/server/**', 'test/fixtures/**/modules/**', 'test/fixtures/**/content.config.ts', 'test/fixtures/**/content/**', 'test/fixtures/**/layers/**', 'test/fixtures/**/middleware/**', 'test/fixtures/**/plugins/**', 'test/fixtures/**/layouts/**', 'test/fixtures/**/composables/**', 'test/fixtures/**/public/**', 'test/fixtures/**/data/**', 'src/**', 'packages/**/src/**', 'packages/**/package.json', 'pnpm-lock.yaml', 'package.json') }} | |
| restore-keys: | | |
| e2e-shared-${{ runner.os }}- | |
| - run: pnpm install | |
| # Packages in packages/* are versioned by hand and `pnpm publish -r` silently | |
| # skips a version that already exists on npm — so a forgotten bump ships a | |
| # stale package. Fail here instead. Cheap (git only), so it runs early. | |
| - run: pnpm run check:versions | |
| # Memory headroom on the runner, for the record: ubuntu-latest gives | |
| # 4 vCPU / 15 GiB with ~14 GiB free and ~4 GiB of swap already configured. | |
| # The previous ERR_IPC_CHANNEL_CLOSED crashes were tests killing processes | |
| # by port (lsof + SIGKILL), not memory — so no extra swap is provisioned. | |
| # If a step ever does run out of memory, print `free -h` here first to | |
| # confirm it before adding any. | |
| - run: pnpm run lint | |
| # Three steps, in this order, because the dependency runs both ways: | |
| # `dev:prepare` loads src/module.ts, which imports the packages from their | |
| # `dist`, so the packages have to be built first — while the demo apps | |
| # under packages/*/playground are bundled by tools that walk up to the | |
| # repo-root tsconfig.json, which `extends` the `.nuxt/tsconfig.json` that | |
| # only `dev:prepare` generates. Astro 7 (vite 8 / rolldown) hard-errors on | |
| # that missing file instead of ignoring it, so the demos build last. | |
| - run: pnpm --filter "./packages/**" --filter "!./packages/*/playground" run build | |
| - run: pnpm run dev:prepare | |
| - run: pnpm --filter "./packages/*/playground" run build | |
| - run: pnpm run typecheck | |
| # integration + e2e both drive a real browser (chromium.launch / createPage) | |
| - run: pnpm exec playwright install chromium | |
| - run: pnpm run test:packages | |
| - run: pnpm run test:unit | |
| - run: pnpm run test:integration | |
| - run: pnpm run test:e2e | |
| - run: pnpm verify:packages && pnpm verify:packages:publint | |
| - run: pnpm run test:dist:packages | |
| # --local-only keeps both packaging gates (hashed chunks, astro client CJS), | |
| # which are computed from the local pack, and skips the npm reference | |
| # download that only feeds informational diffs. Full comparison runs on release. | |
| - run: pnpm run compare:published -- --local-only --changed-only |