Skip to content

Build and Deploy Website #31

Build and Deploy Website

Build and Deploy Website #31

Workflow file for this run

## Note that this workflow is based on:
##
## <https://github.com/gregrickaby/nextjs-github-pages>.
name: "Build and Deploy Website"
on:
workflow_dispatch:
release:
types:
- "published"
permissions:
contents: "read"
pages: "write"
id-token: "write" # For GITHUB_TOKEN to deploy to GitHub Pages
## Allow only one concurrent deployment, skipping runs queued between
## the run in-progress and latest queued.
##
## However, do NOT cancel in-progress runs as we want to allow these
## production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Setup Node"
uses: "actions/setup-node@v4"
with:
node-version: "lts/*"
cache: "npm"
cache-dependency-path: "website"
- name: "Setup Pages"
uses: "actions/configure-pages@v5"
- name: "Restore Cache"
uses: "actions/cache@v4"
with:
path: "website/.next/cache"
key: "${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}"
restore-keys: "${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-"
- name: "Install Dependencies"
run: "cd website && npm ci"
- name: "Build Website"
run: "cd website && npx --no-install next build"
- name: "Upload Built Artifact"
uses: "actions/upload-pages-artifact@v3"
with:
path: "./website/out"
deploy:
needs: "build"
runs-on: "ubuntu-latest"
environment:
name: "github-pages"
url: "${{ steps.deployment.outputs.page_url }}"
steps:
- name: "Deploy Website to GitHub Pages"
uses: "actions/deploy-pages@v4"