diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 63e8af7..cc67ff5 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -1,97 +1,70 @@ -# See https://github.com/gregrickaby/nextjs-github-pages -# -# Sample workflow for building and deploying a Next.js site to GitHub Pages -# -# To get started with Next.js see: https://nextjs.org/docs/getting-started -# -name: Deploy Next.js site to Pages +## Note that this workflow is based on: +## +## . +name: "Build and Deploy Website" on: - # Runs on pushes targeting the default branch push: - branches: ["main"] + branches: + - "main" - # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: - contents: read - pages: write - id-token: write + 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. +## 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 job build: - runs-on: ubuntu-latest + runs-on: "ubuntu-latest" steps: - - name: Checkout - uses: actions/checkout@v4 + - name: "Checkout" + uses: "actions/checkout@v4" - - name: Detect package manager - id: detect-package-manager - run: | - if [ -f "${{ github.workspace }}/website/yarn.lock" ]; then - echo "manager=yarn" >> $GITHUB_OUTPUT - echo "command=install" >> $GITHUB_OUTPUT - echo "runner=yarn" >> $GITHUB_OUTPUT - exit 0 - elif [ -f "${{ github.workspace }}/website/package.json" ]; then - echo "manager=npm" >> $GITHUB_OUTPUT - echo "command=ci" >> $GITHUB_OUTPUT - echo "runner=npx --no-install" >> $GITHUB_OUTPUT - exit 0 - else - echo "Unable to determine package manager" - exit 1 - fi - - - name: Setup Node - uses: actions/setup-node@v4 + - name: "Setup Node" + uses: "actions/setup-node@v4" with: node-version: "lts/*" - cache: ${{ steps.detect-package-manager.outputs.manager }} + cache: "npm" cache-dependency-path: "website" - - name: Setup Pages - uses: actions/configure-pages@v4 + - name: "Setup Pages" + uses: "actions/configure-pages@v5" - - name: Restore cache - uses: actions/cache@v4 + - name: "Restore Cache" + uses: "actions/cache@v4" with: - path: | - website/.next/cache - # Generate a new cache whenever packages or source files change. - key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} - # If source files changed but packages didn't, rebuild from a prior cache. - restore-keys: | - ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}- + 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 && ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} + - name: "Install Dependencies" + run: "cd website && npm ci" - - name: Build with Next.js - run: cd website && ${{ steps.detect-package-manager.outputs.runner }} next build + - name: "Build Website" + run: "cd website && npx --no-install next build" - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 + - name: "Upload Built Artifact" + uses: "actions/upload-pages-artifact@v3" with: - path: ./website/out + path: "./website/out" - # Deployment job deploy: + needs: "build" + runs-on: "ubuntu-latest" environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build + name: "github-pages" + url: "${{ steps.deployment.outputs.page_url }}" steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 + - name: "Deploy Website to GitHub Pages" + uses: "actions/deploy-pages@v4"