feat(viewer): host-overridable ss:aside-head slot atop the sidebar #447
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: | |
| push: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # One Linux job, one npm ci: lint/type/test, the release-note gate, and the | |
| # packed-CLI smoke test. Cheap checks run first so failures surface fast; the | |
| # pack round trip runs last. Node 22 is the documented floor and matches every | |
| # other job — we don't matrix over 24 on PRs. | |
| validate: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| - run: npm install -g npm@11.17.0 | |
| - run: npm ci --ignore-scripts | |
| - run: npm run security:audit | |
| - run: npm run format:check | |
| - run: npm run lint | |
| - run: npm run typecheck | |
| - run: npm test | |
| - name: Release-note changeset | |
| if: github.event_name == 'pull_request' && !startsWith(github.head_ref, 'release/') | |
| run: | | |
| git fetch origin main | |
| npm run changeset:status -- --since=origin/main | |
| - name: Pack and smoke-test the CLI | |
| run: | | |
| npm pack | |
| npm install -g --ignore-scripts ./sideshow-*.tgz | |
| sideshow help | |
| SIDESHOW_DATA=/tmp/sideshow.json sideshow serve & | |
| for i in $(seq 1 20); do curl -sf localhost:8228/api/sessions > /dev/null && break; sleep 0.5; done | |
| echo '<p>ci smoke</p>' | sideshow publish - --title "CI smoke" --agent ci | tee /tmp/out.json | |
| grep -q '"sessionId"' /tmp/out.json | |
| sideshow demo | grep -q "Seeded 2 demo sessions" | |
| curl -sf localhost:8228/guide > /dev/null | |
| e2e: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| - run: npm install -g npm@11.17.0 | |
| - run: npm ci --ignore-scripts | |
| - run: npm run security:audit | |
| - run: npx playwright install --with-deps chromium webkit | |
| - run: npm run test:e2e | |
| # Windows uses entirely separate code paths in the CLI (PowerShell process | |
| # tree walk in agentPid, cmd /c start for --open) and OS-specific path/state | |
| # keying — none of which the Linux jobs exercise. It bills at 2x, so run it | |
| # only on push to main, not on every PR. Keep it lean: unit tests plus a | |
| # packed serve+publish round trip that runs the Windows agentPid walk. | |
| windows-smoke: | |
| if: github.event_name == 'push' | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| - run: npm install -g npm@11.17.0 | |
| - run: npm ci --ignore-scripts | |
| - run: npm run security:audit | |
| - run: npm test | |
| - run: npm pack | |
| - name: Install packed CLI | |
| shell: bash | |
| run: npm install -g --ignore-scripts ./sideshow-*.tgz | |
| - run: sideshow help | |
| shell: bash | |
| - name: Smoke-test server and publish round trip | |
| shell: bash | |
| run: | | |
| SIDESHOW_DATA="$RUNNER_TEMP/sideshow.json" sideshow serve & | |
| for i in $(seq 1 20); do curl -sf localhost:8228/api/sessions > /dev/null && break; sleep 0.5; done | |
| echo '<p>ci smoke</p>' | sideshow publish - --title "CI smoke" --agent ci | tee "$RUNNER_TEMP/out.json" | |
| grep -q '"sessionId"' "$RUNNER_TEMP/out.json" | |
| curl -sf localhost:8228/guide > /dev/null |