From e042492486200b0bd76f24e2629e8a929dd3bba3 Mon Sep 17 00:00:00 2001 From: iCrawl Date: Thu, 12 Jan 2023 09:44:07 +0100 Subject: [PATCH] ci: fix nextjs bundle analysis --- .github/workflows/nextjs-bundle-analysis.yml | 38 ++++++++++---------- apps/website/package.json | 5 +++ 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/.github/workflows/nextjs-bundle-analysis.yml b/.github/workflows/nextjs-bundle-analysis.yml index fde029791..392f58ba8 100644 --- a/.github/workflows/nextjs-bundle-analysis.yml +++ b/.github/workflows/nextjs-bundle-analysis.yml @@ -4,14 +4,18 @@ on: branches: - 'main' paths: - - 'apps/website' + - 'apps/website/**' pull_request: paths: - - 'apps/website' + - 'apps/website/**' workflow_dispatch: defaults: run: - working-directory: ./apps/website + working-directory: apps/website +permissions: + contents: read + actions: read + pull-requests: write jobs: analyze: name: Analyze @@ -34,45 +38,43 @@ jobs: env: cache-name: cache-next-build with: - # if you use a custom build directory, replace all instances of `.next` in this file with your build directory - # ex: if your app builds to `dist`, replace `.next` with `dist` - path: .next/cache - # change this if you prefer a more strict cache + path: apps/website/.next/cache key: ${{ runner.os }}-build-${{ env.cache-name }} - name: Build website run: yarn workspace @discordjs/website run build:prod - name: Analyze bundle - run: npx -p nextjs-bundle-analysis report + run: npx -yes -p github:hashicorp/nextjs-bundle-analysis report - name: Upload bundle uses: actions/upload-artifact@v3 with: name: bundle - path: .next/analyze/__bundle_analysis.json + path: apps/website/.next/analyze/__bundle_analysis.json - name: Download base branch bundle stats uses: dawidd6/action-download-artifact@v2 if: success() && github.event.number with: workflow: nextjs-bundle-analysis.yml - branch: ${{ github.event.pull_request.base.ref }} - path: .next/analyze/base + commit: ${{ github.event.pull_request.base.sha }} + path: apps/website/.next/analyze/base - name: Compare with base branch bundle if: success() && github.event.number - run: ls -laR .next/analyze/base && npx -p nextjs-bundle-analysis compare + run: ls -laR .next/analyze/base && npx -yes -p github:hashicorp/nextjs-bundle-analysis compare - name: Get comment body id: get-comment-body if: success() && github.event.number - run: | - body=$(cat .next/analyze/__bundle_analysis_comment.txt) - body="${body//'%'/'%25'}" - body="${body//$'\n'/'%0A'}" - body="${body//$'\r'/'%0D'}" - echo ::set-output name=body::$body + uses: actions/github-script@v6 + with: + result-encoding: string + script: | + const fs = require('fs'); + const comment = fs.readFileSync('.next/analyze/__bundle_analysis_comment.txt', 'utf8'); + core.setOutput('body', comment); - name: Find Comment uses: peter-evans/find-comment@v2 diff --git a/apps/website/package.json b/apps/website/package.json index 56216cffb..d7759e36f 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -99,5 +99,10 @@ }, "engines": { "node": ">=16.9.0" + }, + "nextBundleAnalysis": { + "budget": 358400, + "budgetPercentIncreaseRed": 20, + "showDetails": true } }