Nightly #18
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: Nightly | |
| # Release-boundary and documentation-artifact lanes that are too slow, or | |
| # prove too little per commit, to run on every PR. Every job here is | |
| # independent — one red lane never hides another — and none is a required | |
| # check on main. Before #576 the evidence pool sat after `pnpm check:release` | |
| # inside one job and had never executed because the packed matrix failed | |
| # first, and the MCP conformance lane existed only as a never-dispatched | |
| # manual workflow. | |
| on: | |
| schedule: | |
| - cron: '17 6 * * *' | |
| # Manual dispatch proves a lane green from any ref (e.g. a PR branch that | |
| # changes one of these pools) without waiting for the next night. | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: nightly-${{ github.sha }} | |
| env: | |
| # Same browser pin as ci.yml: Workbench browser suites launch Playwright's | |
| # bundled Chromium (see packages/workbench/tests/support/workbench-e2e.ts). | |
| AGENT_BUNDLE_PLAYWRIGHT_CHANNEL: chromium | |
| jobs: | |
| # Release-boundary scaffolder template matrix (mcp-server, cli-tool) plus | |
| # the full packed pool — the nightly form of pre-publish `check:release`. | |
| # The per-PR release-gates job runs the `check:release:ci` subset. | |
| # Version Packages candidates and manual qualification use | |
| # release-candidate.yml (same `pnpm check:release` command, not this | |
| # schedule). | |
| # Known red until test/576-p1-test-fixes lands: scaffold-packed-matrix.e2e | |
| # asserts the scaffolded project's test output contains `"failedTests": 0`, | |
| # a string only Rstest's `md` reporter prints (auto-selected under an | |
| # AI-agent environment variable such as CURSOR_AGENT), never the default | |
| # reporter a hosted runner uses (#576). Non-blocking: nothing requires this | |
| # workflow, and a main push never waits on it. | |
| packed-matrix: | |
| name: Packed release matrix (Node 22.19) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 40 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/setup-workspace | |
| with: | |
| node-version: 22.19.0 | |
| playwright-browser: chromium | |
| - run: pnpm check:release | |
| - if: failure() | |
| name: Preserve Playwright traces of failed browser tests | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: playwright-traces-packed-matrix | |
| path: .rstest/playwright-traces | |
| if-no-files-found: ignore | |
| retention-days: 7 | |
| # Official MCP server conformance runner (rstest.mcp-conformance.config.ts) | |
| # against one generated fixture over loopback HTTP. The expected-failure | |
| # allowlist lives in packages/agent-bundle/tests/fixtures/ | |
| # mcp-conformance-expected-failures.yml; the runner's report is kept as an | |
| # artifact for triage. | |
| mcp-conformance: | |
| name: MCP conformance (Node 22.19) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ./.github/actions/setup-workspace | |
| with: | |
| node-version: 22.19.0 | |
| - run: pnpm test:mcp-conformance | |
| env: | |
| AGENT_BUNDLE_MCP_CONFORMANCE_OUTPUT: artifacts/mcp-conformance | |
| - name: Preserve MCP conformance results | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| if-no-files-found: warn | |
| name: mcp-conformance-results | |
| path: artifacts/mcp-conformance | |
| retention-days: 14 |