diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml index d1837be..81c5fc0 100644 --- a/.github/workflows/nextjs.yml +++ b/.github/workflows/nextjs.yml @@ -53,28 +53,20 @@ jobs: with: node-version: "20" cache: ${{ steps.detect-package-manager.outputs.manager }} - - name: Setup Pages - uses: actions/configure-pages@v5 - with: - # Automatically inject basePath in your Next.js configuration file and disable - # server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized). - # - # You may remove this line if you want to manage the configuration yourself. - static_site_generator: next - name: Restore cache uses: actions/cache@v4 with: path: | .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') }}- - name: Install dependencies run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} - name: Build with Next.js run: ${{ steps.detect-package-manager.outputs.runner }} next build + env: + GITHUB_PAGES: "true" - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: diff --git a/next.config.js b/next.config.js index d23e617..dcad250 100644 --- a/next.config.js +++ b/next.config.js @@ -1,6 +1,15 @@ /** @type {import('next').NextConfig} */ +const isGithubPages = process.env.GITHUB_PAGES === "true"; + const nextConfig = { reactStrictMode: true, + // Static export for GitHub Pages deployment + output: isGithubPages ? "export" : undefined, + // Repo name as base path when deployed to GitHub Pages project site + basePath: isGithubPages ? "/CodeXray" : "", + // Required for next/image in static export + images: isGithubPages ? { unoptimized: true } : {}, + trailingSlash: isGithubPages ? true : false, env: { // The backend this dashboard observes. Defaults to :8000 but can target // any instrumented service exposing /metrics and /logs.