name: Deploy Pages on: push: branches: [main] paths: - 'examples/**' - 'scripts/build-pages.js' - 'src/**' - 'assets/**' - 'package.json' - '.github/workflows/pages.yml' workflow_dispatch: # Allow GitHub Pages to read from this workflow permissions: contents: read pages: write id-token: write # Only one Pages deployment at a time concurrency: group: 'pages' cancel-in-progress: true jobs: build: name: Build showcase site runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v7 - name: Use Node 22 uses: actions/setup-node@v6 with: node-version: '22.x' cache: npm - name: Install dependencies run: npm ci - name: Compile examples smoke test run: | for f in examples/*.pjs; do echo "Compiling $f..." node src/cli/index.js compile "$f" --stdout > /dev/null done - name: Build showcase site run: npm run pages:build - name: Upload Pages artifact uses: actions/upload-pages-artifact@v5 with: path: ./dist-pages deploy: name: Deploy to GitHub Pages needs: build runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy id: deployment uses: actions/deploy-pages@v5