# 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 #on: # # Runs on pushes targeting the default branch # push: # branches: ["main"] # # Allows you to run this workflow manually from the Actions tab # workflow_dispatch: on: [push] # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # 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 # Use ``frontend`` as the working directory # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_iddefaultsrun defaults: run: working-directory: ./frontend strategy: matrix: node-version: [18.17.1] steps: - name: Checkout uses: actions/checkout@v3 - name: Set up pnpm uses: pnpm/action-setup@v2 with: version: 8 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: "pnpm" cache-dependency-path: "./frontend/pnpm-lock.yaml" - name: Install dependencies run: pnpm install - name: Setup Pages uses: actions/configure-pages@v3 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: Build with Next.js run: pnpm next build - name: Static HTML export with Next.js run: pnpm next export - name: Upload artifact uses: actions/upload-pages-artifact@v2 with: path: ./out # Deployment job 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@v2