Files
charleswiltgen__axiom/.github/workflows/deploy.yml
T
Charles Wiltgen 545798e3bb fix(deps): unblock pi install by overriding the vitepress-plugin-mermaid peer
`pi install git:github.com/CharlesWiltgen/Axiom` — the command in README.md and
the Pi setup guide — failed for every user with npm ERESOLVE. Pi runs a bare
`npm install --omit=dev` in its clone; --omit=dev skips INSTALLING
devDependencies but npm still RESOLVES the whole graph, so a docs-toolchain
conflict aborted an install that has nothing to install (the root manifest
declares no runtime dependencies at all).

vitepress-plugin-mermaid peers on vitepress ^1 and has no v2-compatible release,
and mermaid is used on 25 docs pages, so the plugin cannot be dropped. A narrow
`overrides` entry fixes resolution without disabling peer checks repo-wide:
strict `npm ci` now passes, so both workflows drop --legacy-peer-deps. That flag
was what hid this from CI for seven months — it landed 73 seconds after mermaid
did (e53671ac).

Toolchain moved to current while here: vitepress 2.0.0-alpha.15 (Nov 2025) ->
2.0.0-alpha.19, and mermaid 11.12.2 -> 11.17.1 inside the existing ^11 range.
npm audit drops from 15 vulnerabilities (8 moderate, 7 high) to 2, clearing a
DOMPurify XSS. Docs build stays green with all 25 mermaid pages rendering.

Closes #54.
2026-08-24 09:57:23 -07:00

48 lines
1.1 KiB
YAML

name: Deploy VitePress site to GitHub Pages
on:
push:
branches: [main]
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '24'
- name: Install dependencies
run: npm ci
- name: Build VitePress site
run: npm run docs:build
- name: Upload artifact
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
with:
path: ./docs/.vitepress/dist
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0