Skip to content

docs: ground the experimental-tier architecture — status is a maturit… #311

docs: ground the experimental-tier architecture — status is a maturit…

docs: ground the experimental-tier architecture — status is a maturit… #311

Workflow file for this run

# .github/workflows/pages — publish the live in-browser detection page to GitHub Pages.
# Builds the collector live-page bundle + rule registry JSON + scoreboard, assembles site/, and deploys.
name: pages
on:
push: { branches: [main] }
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: true
jobs:
build-and-deploy:
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deploy.outputs.page_url }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
# Build the live detection page bundle (collector → site-build/main.js).
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6
with: { version: "9.12.0" }
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with: { node-version: "22", cache: pnpm, cache-dependency-path: collector/pnpm-lock.yaml }
- name: Build live-page bundle
working-directory: collector
run: |
pnpm install --frozen-lockfile
pnpm run build:livepage
# Render the rule registry JSON (consumed by the page) + the evader scoreboard.
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
with: { enable-cache: true }
- name: Render registry + scoreboard
working-directory: harness
run: |
uv sync
mkdir -p ../site
uv run python -m kitsune_harness.rules_json > ../site/rules.json
uv run python -m kitsune_harness > ../site/scoreboard.md
uv run python -m kitsune_harness --json > ../site/scoreboard.json
# Assemble the static site: the page shell + styles + bundle + registry + scoreboard.
- name: Assemble site
run: |
cp collector/page/index.html site/index.html
cp collector/page/styles.css site/styles.css
cp collector/site-build/main.js site/livepage.js
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
with: { path: site }
- id: deploy
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5