feat: vintage cream PC demo on the landing page #107
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: | |
| branches: [main] | |
| push: | |
| branches: [main] | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| typecheck: | |
| name: typecheck | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Typecheck | |
| run: pnpm typecheck | |
| format: | |
| name: format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Format check | |
| run: pnpm format:check | |
| lint: | |
| name: lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Lint | |
| run: pnpm lint | |
| build: | |
| name: build | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build | |
| id: build | |
| continue-on-error: true | |
| run: pnpm build 2>&1 | tee build.log | |
| - name: Detect OOM | |
| id: oom | |
| if: steps.build.outcome == 'failure' | |
| run: | | |
| if grep -qE "JavaScript heap out of memory|Reached heap limit" build.log; then | |
| echo "oom=true" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "oom=false" >> "$GITHUB_OUTPUT" | |
| fi | |
| - name: Comment OOM skip on PR | |
| if: github.event_name == 'pull_request' && steps.oom.outputs.oom == 'true' | |
| uses: marocchino/sticky-pull-request-comment@v2 | |
| with: | |
| header: build-skipped | |
| message: | | |
| ### Build skipped — out of memory on CI runner | |
| The `@tripwire/web` build exceeded the ~7 GB memory ceiling on | |
| `ubuntu-latest` and crashed with `JavaScript heap out of memory`. | |
| Treating this as a skip, not a failure — build verification | |
| happens on the deploy platform. | |
| To make this actually run in CI later: | |
| - Use a runner with more RAM, or | |
| - Fix the root cause (likely server-only deps like `pg` leaking | |
| into the client bundle — see the `pg-pool` circular chunk warning) | |
| - name: Remove stale OOM comment | |
| if: github.event_name == 'pull_request' && steps.build.outcome == 'success' | |
| uses: marocchino/sticky-pull-request-comment@v2 | |
| with: | |
| header: build-skipped | |
| delete: true | |
| - name: Fail if build failed for non-OOM reason | |
| if: steps.build.outcome == 'failure' && steps.oom.outputs.oom != 'true' | |
| run: | | |
| echo "Build failed for a reason other than OOM. Failing the check." | |
| exit 1 |