Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 18 additions & 10 deletions .github/workflows/static.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,25 @@
# Simple workflow for deploying static content to GitHub Pages
# Deploys the public site to GitHub Pages: the landing page at the site root and the
# generated live-status page at /status/. Only the assembled _site/ directory is
# published — never the whole repository. Both pages share one design system and are
# gated by `forge uicheck design` (see test/pages.test.js and the uicheck suite).
name: Deploy static content to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
# Allow only one concurrent deployment, but let in-progress production deploys finish.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
Expand All @@ -31,13 +28,24 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
- name: Build site
# build-pages.mjs is node-stdlib-only — no npm ci needed. BUILD_PAGES_LIVE=1
# refreshes public GitHub counters (best-effort; the build succeeds without it).
run: |
BUILD_PAGES_LIVE=1 node scripts/build-pages.mjs
mkdir -p _site/status
cp landing/index.html _site/index.html
cp public/index.html _site/status/index.html
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload entire repository
path: '.'
path: "_site"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,17 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
claim ids. `reconcileFacts` now only tombstones locally-authored claims, so a merged
teammate fact survives `forge recall consolidate`. Legacy formats are still written —
full retirement is the next step.
- **Professional redesign of the public site, gated by forge's own UI system.** The
landing page (`landing/index.html`) and the generated status page
(`scripts/build-pages.mjs` → `public/index.html`) are rebuilt on one design system —
the `forge dash` eight-color warm-ink/ember palette, a strict 4px spacing base, three
radius levels, one shadow — and both now pass `forge uicheck design` **and** the
rendered `forge uicheck visual` gate (the old pages failed with 15–19 accumulated
colors and 5–9 radius levels; a project fingerprint claim is minted so conformance is
checked too). Scroll-reveal is JS-gated progressive enhancement (no-JS UAs, crawlers,
and reduced-motion users see the full page), and the Pages workflow (`static.yml`) now
builds and deploys an assembled `_site/` — landing at the site root, status page at
`/status/` — instead of uploading the entire repository as the artifact.

## [0.6.0] - 2026-07-07

Expand Down
Loading
Loading