Skip to content

Commit

Permalink
Add bundle size analyzer to GH action (#2942)
Browse files Browse the repository at this point in the history
  • Loading branch information
nstolpe authored Nov 7, 2024
1 parent bafe8b7 commit 3f41ff5
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 0 deletions.
79 changes: 79 additions & 0 deletions .github/actions/bundle-size/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: "Bundle size reporter"
description: "Post bundle size difference compared to another branch"
inputs:
branch:
description: 'Branch to compare to'
required: true
default: 'main'
paths:
description: "Paths to json file bundle size report or folder containing bundles"
required: true
default: "/"
onlyDiff:
description: "Report only different sizes"
required: false
default: "false"
filter:
description: "Regex filter based on file path"
required: false
unit:
description: "Size unit"
required: false
default: "KB"

# Comment inputs
comment:
description: "Post comment"
required: false
default: "true"
header:
description: "Comment header"
required: false
default: "Bundle size report"
append:
description: "Append comment"
required: false
default: "false"
ghToken:
description: "Github token"
required: false

runs:
using: "composite"
steps:
# Checkout branch to compare to [required]
- name: Checkout base branch
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}
path: br-base

# build main under it's checkout location, in ./br-base
- name: Build main
shell: bash
run: cd br-base && pnpm install && pnpm build

# Generate the bundle size difference report [required]
- name: Generate report
id: bundleSize
uses: nejcm/[email protected]
with:
paths: ${{ inputs.paths }}
onlyDiff: ${{ inputs.onlyDiff }}

# Post github action summary
- name: Post summary
if: ${{ steps.bundleSize.outputs.hasDifferences == 'true' }} # post only in case of changes
run: |
echo '${{ steps.bundleSize.outputs.summary }}' >> $GITHUB_STEP_SUMMARY
shell: bash

# Post github action comment
- name: Post comment
uses: marocchino/sticky-pull-request-comment@v2
if: ${{ steps.bundleSize.outputs.hasDifferences == 'true' }} # post only in case of changes
with:
number: ${{ github.event.pull_request.number }}
header: ${{ inputs.header }}
append: ${{ inputs.append }}
message: "${{ steps.bundleSize.outputs.summary }}"
7 changes: 7 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ jobs:
- name: Types
run: pnpm types:check

- name: 📄 Bundle size report
uses: ./.github/actions/bundle-size # path to composite action
with:
paths: "packages/victory/dist/victory.min.js"
onlyDiff: "true"
header: "Bundle size report" # PR comment header

format:
needs: [build]
runs-on: ubuntu-latest
Expand Down

0 comments on commit 3f41ff5

Please sign in to comment.