# 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: Build and Deploy Next.js to GitHub Pages on: # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run workflow_run: workflows: - "Scraping the repositories from Source Graph" - "Python App Quality and Testing" branches: [master] types: - completed # Allows you to run this workflow manually from the Actions tab # https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch workflow_dispatch: # Allows to run this workflow on push events to the master branch # https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#using-activity-types-and-filters-with-multiple-events push: branches: [master] page_build: # 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 if: ${{ !env.ACT }} # skip during local actions testing uses: actions/upload-pages-artifact@v2 with: path: ./frontend/out # Lint job lint: 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: Lint with ESLint run: pnpm lint - name: Lint with Prettier run: pnpm prettier:lint # Deployment job deploy: if: ${{ !github.event.act }} # skip during local actions testing 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