Skip to content
This repository was archived by the owner on Feb 20, 2026. It is now read-only.

Deploy to GitHub Pages #13

Deploy to GitHub Pages

Deploy to GitHub Pages #13

Workflow file for this run

name: Deploy to GitHub Pages
on:
push:
branches: ["main"]
paths-ignore:
- "assets/**" # assets changes are handled via update-assets workflow then re-run deploy via workflow_run
workflow_run:
workflows: ["Update Assets JSON"]
types: [completed]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
deploy:
# Only run after update-assets if that workflow succeeded
if: github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js (for fallback)
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Generate assets.json if missing (fallback)
run: |
if [ ! -f "assets.json" ]; then
echo "assets.json missing, generating as fallback..."
node scripts/generate-assets.js || echo "Generation failed, continuing..."
fi
- name: Create symlinks for direct access
run: |
mkdir -p icons logos images videos
if [ -d "assets/icons" ]; then
cp -r assets/icons/* icons/
fi
if [ -d "assets/logos" ]; then
cp -r assets/logos/* logos/
fi
if [ -d "assets/images" ]; then
cp -r assets/images/* images/
fi
if [ -d "assets/videos" ]; then
cp -r assets/videos/* videos/
fi
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: "."
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4