Skip to content

Commit 1b4e3f8

Browse files
AndrewAltimitAI Agent BotclaudeAI Review Agent
authored
feat: GitHub Pages site with landing page and live WASM demo (#33)
* feat: GitHub Pages site with landing page and live WASM demo Dark terminal-aesthetic landing page showcasing all 8 skins, platform targets, key features, architecture diagram, and build instructions. Live demo page embeds the WASM backend with a skin selector dropdown. CI workflow builds WASM and deploys via GitHub Pages on push to main. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: address AI review feedback (iteration 1) Automated fix by Claude in response to Gemini/Codex review. Iteration: 1/5 Co-Authored-By: AI Review Agent <noreply@anthropic.com> * feat: integrate GitHub Pages deployment into main CI workflow Move Pages build+deploy from standalone pages.yml into main-ci.yml as a deploy-pages job that runs on the self-hosted runner after CI passes. Only triggers on pushes to main. Deletes the standalone workflow since the site folder can't auto-publish without the CI build step. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: add issues:write permission and clean stale _site artifacts Explicit workflow-level permissions cause unspecified scopes to default to none. The notify job's gh issue create needs issues:write. Also clear _site before assembly to prevent stale files on the self-hosted runner. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: AI Agent Bot <ai-agent@localhost> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: AI Review Agent <ai-review-agent@localhost>
1 parent c506dfc commit 1b4e3f8

7 files changed

Lines changed: 1458 additions & 1 deletion

File tree

.github/workflows/main-ci.yml

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ on:
1414
type: boolean
1515
default: false
1616

17+
permissions:
18+
contents: write
19+
issues: write
20+
pages: write
21+
id-token: write
22+
1723
concurrency:
1824
group: main-ci-${{ github.sha }}
1925
cancel-in-progress: false
@@ -400,10 +406,54 @@ jobs:
400406
env:
401407
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
402408

409+
# -- Deploy GitHub Pages --------------------------------------------------
410+
deploy-pages:
411+
name: Deploy GitHub Pages
412+
needs: ci
413+
if: github.ref == 'refs/heads/main'
414+
runs-on: self-hosted
415+
timeout-minutes: 15
416+
concurrency:
417+
group: pages
418+
cancel-in-progress: false
419+
environment:
420+
name: github-pages
421+
url: ${{ steps.deployment.outputs.page_url }}
422+
steps:
423+
- name: Checkout
424+
uses: actions/checkout@v4
425+
426+
- name: Install wasm-pack
427+
run: |
428+
if ! command -v wasm-pack &>/dev/null; then
429+
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
430+
fi
431+
432+
- name: Build WASM
433+
run: ./scripts/build-wasm.sh --release
434+
435+
- name: Assemble site
436+
run: |
437+
rm -rf _site
438+
mkdir -p _site/demo
439+
rsync -a --exclude screenshots site/ _site/
440+
cp -r screenshots/ _site/screenshots/
441+
cp -r pkg/ _site/pkg/
442+
cp www/index.js _site/demo/index.js
443+
444+
- name: Upload Pages artifact
445+
uses: actions/upload-pages-artifact@v3
446+
with:
447+
path: _site
448+
449+
- name: Deploy to GitHub Pages
450+
id: deployment
451+
uses: actions/deploy-pages@v4
452+
403453
# -- CI Summary ----------------------------------------------------------
404454
notify:
405455
name: CI Summary
406-
needs: [ci, build-release-binaries, create-release]
456+
needs: [ci, build-release-binaries, create-release, deploy-pages]
407457
if: always()
408458
runs-on: self-hosted
409459
steps:
@@ -419,6 +469,7 @@ jobs:
419469
echo "| CI | ${{ needs.ci.result }} |" >> $GITHUB_STEP_SUMMARY
420470
echo "| Build Binaries | ${{ needs.build-release-binaries.result }} |" >> $GITHUB_STEP_SUMMARY
421471
echo "| GitHub Release | ${{ needs.create-release.result }} |" >> $GITHUB_STEP_SUMMARY
472+
echo "| GitHub Pages | ${{ needs.deploy-pages.result }} |" >> $GITHUB_STEP_SUMMARY
422473
423474
if [[ "${{ needs.ci.result }}" == "failure" ]]; then
424475
echo "" >> $GITHUB_STEP_SUMMARY

site/.nojekyll

Whitespace-only changes.

0 commit comments

Comments
 (0)