Showcase Smoke #17
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
| # Showcase Smoke — NON-BLOCKING. Drives the console (served by the backend at | |
| # /_console) across every showcase nav surface, asserting render health | |
| # (no crash / no leaked dev placeholder / charts draw). Manual + nightly only; | |
| # it never gates PRs. Promote to a PR gate once it has proven stable here. | |
| name: Showcase Smoke | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: '0 7 * * *' # 07:00 UTC nightly | |
| permissions: | |
| contents: read | |
| jobs: | |
| smoke: | |
| name: Showcase nav-surface smoke | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: pnpm/action-setup@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| # The smoke's webServer runs `os serve --dev`, which loads the showcase | |
| # config + its workspace runtime deps (CLI, connector-rest, …) from their | |
| # built `dist/`. Build the whole dependency closure (excluding the | |
| # showcase's own app build, which serve --dev doesn't need). | |
| - run: pnpm turbo run build --filter=@objectstack/example-showcase^... | |
| # The console SPA served at /_console is vendored by build-console.sh | |
| # (shallow-clones objectui@.objectui-sha, builds @object-ui/console, copies | |
| # dist → packages/console/dist). Without it serve --dev warns "Console dist | |
| # not found" and the app shell never renders. | |
| - name: Vendor the pinned Console SPA | |
| run: bash scripts/build-console.sh | |
| # Self-test the drift guard: a fresh build-console.sh must stamp the dist | |
| # with the pinned SHA so `pnpm check:console-sha` reports in-sync. Catches | |
| # a regression where the stamp step is dropped or the pin/stamp diverge. | |
| - name: Verify Console SHA stamp matches pin | |
| run: pnpm check:console-sha | |
| - name: Install Playwright Chromium | |
| working-directory: examples/app-showcase | |
| run: pnpm exec playwright install --with-deps chromium | |
| - name: Run showcase smoke | |
| working-directory: examples/app-showcase | |
| run: pnpm test:smoke | |
| - name: Upload report on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: showcase-smoke-report | |
| path: examples/app-showcase/playwright-report/ | |
| retention-days: 7 |