Skip to content

feat(heroes): implement heroes radar #3695

feat(heroes): implement heroes radar

feat(heroes): implement heroes radar #3695

name: 'Next.js Bundle Analysis'
on:
push:
branches: [master]
pull_request:
branches: [master]
types: [opened, synchronize]
paths-ignore:
- 'tools/bumblebee/**'
concurrency:
group: nextjs_bundle_analysis_${{ github.ref }}
cancel-in-progress: true
jobs:
analyze:
name: Analyze Next.js
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up node
uses: actions/setup-node@v2
with:
node-version: '16.x'
- name: Restore npm cache
uses: actions/cache@v2
env:
cache-name: cache-npm
with:
path: ~/.npm
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-${{ env.cache-name }}-
${{ runner.os }}-
- name: Restore next cache
uses: actions/cache@v2
env:
cache-name: cache-next
with:
path: ./client/.next/cache/
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-${{ env.cache-name }}-
- name: Install dependencies
run: npm ci
working-directory: client
- name: Build next.js app
working-directory: client
env:
NODE_ENV: production
run: npm run build
# Here's the first place where next-bundle-analysis' own script is used
# This step pulls the raw bundle stats for the current bundle
- name: Analyze bundle
run: npx -p nextjs-bundle-analysis report
working-directory: client
- name: Upload bundle
uses: actions/upload-artifact@v2
with:
name: bundle
path: client/.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: client/.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
working-directory: client
- name: Get comment body
id: get-comment-body
if: success() && github.event.number
working-directory: client
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
- name: Find Comment
uses: peter-evans/find-comment@v1
if: success() && github.event.number && github.event.pull_request.head.repo.full_name == github.repository
id: fc
with:
issue-number: ${{ github.event.number }}
body-includes: '<!-- __NEXTJS_BUNDLE -->'
- name: Create Comment
uses: peter-evans/[email protected]
if: success() && github.event.number && steps.fc.outputs.comment-id == 0 && github.event.pull_request.head.repo.full_name == github.repository
with:
issue-number: ${{ github.event.number }}
body: ${{ steps.get-comment-body.outputs.body }}
- name: Update Comment
uses: peter-evans/[email protected]
if: success() && github.event.number && steps.fc.outputs.comment-id != 0 && github.event.pull_request.head.repo.full_name == github.repository
with:
issue-number: ${{ github.event.number }}
body: ${{ steps.get-comment-body.outputs.body }}
comment-id: ${{ steps.fc.outputs.comment-id }}
edit-mode: replace