This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # ═══════════════════════════════════════════════════════════════════ | |
| # Revision Master — GitHub Pages Deployment | |
| # ═══════════════════════════════════════════════════════════════════ | |
| # | |
| # SETUP INSTRUCTIONS | |
| # ────────────────── | |
| # Your GitHub repository structure must look like this: | |
| # | |
| # repo-root/ | |
| # ├── .github/ ← copy this folder here (repo root) | |
| # │ └── workflows/ | |
| # │ └── deploy.yml | |
| # ├── website/ ← paste the entire website project here | |
| # │ ├── artifacts/ | |
| # │ │ └── revision-master/ | |
| # │ ├── lib/ | |
| # │ ├── pnpm-workspace.yaml | |
| # │ └── ... | |
| # └── README.md | |
| # | |
| # The workflow ONLY triggers when you push changes inside website/ | |
| # so other files in your repo never cause unnecessary deploys. | |
| # Uses npm (not pnpm) because the website ships an npm package-lock.json. | |
| # BASE PATH: | |
| # By default this uses your repo name as the base path, which is | |
| # correct for project pages (username.github.io/repo-name). | |
| # If you're deploying to a custom domain or user root page, change: | |
| # BASE_PATH: / | |
| # ═══════════════════════════════════════════════════════════════════ | |
| name: Deploy Revision Master Website | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - 'website/**' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: "pages" | |
| cancel-in-progress: false | |
| jobs: | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: website | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| cache-dependency-path: website/package-lock.json | |
| - name: Install dependencies | |
| run: npm install | |
| - name: Build website | |
| run: npm run build | |
| env: | |
| NODE_ENV: production | |
| PORT: 3000 | |
| BASE_PATH: /${{ github.event.repository.name }}/ | |
| # ↑ For a custom domain or user/org root page, change to: | |
| # BASE_PATH: / | |
| - name: Configure GitHub Pages | |
| uses: actions/configure-pages@v5 | |
| - name: Upload Pages artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: website/dist/ | |
| deploy: | |
| name: 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@v4 |