chore: will this bloody work? #252
Workflow file for this run
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
name: Build & Deploy # CI workflow: build site and deploy to GitHub Pages | |
on: | |
push: # Run on direct pushes to main (will build & deploy) | |
branches: ['main'] | |
pull_request: # Run on PRs targeting main (build only; deploy steps are conditionally skipped) | |
branches: ['main'] | |
# Least-privilege permissions for Pages | |
permissions: # Minimum required permissions for Pages OIDC deployment | |
contents: read # Needed to checkout the repository | |
pages: write # Required to publish to GitHub Pages | |
id-token: write # Required for OIDC authentication during deployment | |
# Avoid overlapping deployments | |
concurrency: | |
group: pages # Ensure only one Pages deployment runs at a time | |
cancel-in-progress: true # Cancel any in-progress run from the same group when a new one starts | |
jobs: | |
build: | |
runs-on: ubuntu-latest # Latest Ubuntu runner image | |
environment: # Deployment environment metadata (appears in Deployments UI) | |
name: github-pages | |
steps: | |
- name: Checkout # Fetch repository contents | |
uses: actions/checkout@v4 | |
- name: Set up Node.js # Install requested Node version & enable npm cache | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '24.2.0' # Aligns with engines + Volta pin | |
cache: 'npm' # Speeds up installs across runs | |
- name: Install dependencies # Clean, reproducible install | |
run: npm ci | |
- name: Build # Run Eleventy build -> outputs static site into ./dist | |
run: npm run build | |
# Prepare Pages configuration (only when we intend to deploy) | |
- name: Configure Pages | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
uses: actions/configure-pages@v5 | |
- name: Upload Pages artifact # Package the built site for deployment | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: ./dist # Must match Eleventy's output directory | |
- name: Deploy to GitHub Pages # Publish artifact -> GitHub Pages | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
id: deployment | |
uses: actions/deploy-pages@v4 | |
# This step sets the 'page_url' output available as steps.deployment.outputs.page_url |