Auto-generated metrics for run #28725168701 #28
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: | |
| pull_request: | |
| # Release validation is owned by the release workflows rather than this CI | |
| # workflow: `release-stable` has a verify job before publishing, and | |
| # `release-beta` builds from its selected release commit. Keep this trigger | |
| # focused on PRs, main, and manual reruns instead of duplicating tag/release | |
| # events that would run after those release workflows have already selected | |
| # or validated their commit. | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.event.pull_request.number || github.ref }} | |
| # Prefer current-head signal over preserving superseded logs: PR authors often | |
| # push fixups while this workflow is still running, and stale runs can report | |
| # failures for commits reviewers no longer need to evaluate. Release workflows | |
| # use cancel-in-progress: false where preserving build evidence matters more. | |
| cancel-in-progress: true | |
| jobs: | |
| validate: | |
| name: Validate workspace | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6.0.2 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v5 | |
| with: | |
| version: 10.33.2 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| # `scripts/postinstall.mjs` only prebuilds package/tool entrypoints that | |
| # are needed immediately after install for linked bins and shared | |
| # sidecar/platform imports. It intentionally skips app outputs because | |
| # building all apps would make every install run a Next/Electron-adjacent | |
| # app build, even when a developer only needs packages/tools. | |
| # | |
| # Fresh CI typecheck/test still need these specific generated declarations: | |
| # - `apps/daemon/dist/*.d.ts` for e2e runtime-adapter tests that import | |
| # daemon runtime modules | |
| # - `apps/desktop/dist/main/index.d.ts` for `apps/packaged` imports of | |
| # `@open-design/desktop/main` | |
| # - `apps/web/dist/sidecar/index.d.ts` for `apps/packaged` imports of | |
| # `@open-design/web/sidecar` | |
| # If postinstall grows a targeted app type-generation phase covering these | |
| # three exports without broad app builds, this CI prebuild can be removed. | |
| - name: Prebuild workspace type declarations | |
| run: | | |
| pnpm --filter @open-design/daemon build | |
| pnpm --filter @open-design/desktop build | |
| pnpm --filter @open-design/web build:sidecar | |
| - name: Typecheck workspaces | |
| run: pnpm -r --workspace-concurrency=1 --if-present run typecheck | |
| - name: Check residual JS in TypeScript packages | |
| run: pnpm check:residual-js | |
| - name: Test | |
| run: pnpm test | |
| # Keep workspace builds serialized so generated dist output and local | |
| # runtime artifacts are produced in a deterministic order. Parallel | |
| # recursive builds would surface late-package failures sooner, but the | |
| # current workspace is small enough that safer logs and fewer shared-FS | |
| # races outweigh the lost parallelism; revisit if the package count grows. | |
| - name: Build workspaces | |
| run: pnpm -r --workspace-concurrency=1 --if-present run build |