version 0.3.2 (#51) #13
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright (c) HashiCorp, Inc. | |
# SPDX-License-Identifier: MPL-2.0 | |
name: 'Bundle size' | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
defaults: | |
run: | |
working-directory: ./ | |
permissions: | |
contents: read # for checkout repository | |
actions: read # for fetching base branch bundle stats | |
pull-requests: write # for comments | |
jobs: | |
bundle_size: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up Bun | |
uses: oven-sh/setup-bun@v1 | |
- name: Bun version | |
run: bun --version | |
- name: Install dependencies | |
run: bun install --frozen-lockfile | |
- name: Restore build | |
uses: actions/cache@v3 | |
id: restore-build-cache | |
env: | |
cache-name: cache-next-build | |
with: | |
path: .next/cache | |
key: ${{ runner.os }}-build-${{ env.cache-name }} | |
- name: Build | |
run: bun run build | |
- name: Analyze bundle | |
run: bun run bundle:analyze | |
- name: Upload bundle | |
uses: actions/upload-artifact@v4 | |
with: | |
name: bundle | |
path: .next/analyze/__bundle_analysis.json | |
- name: Download base branch bundle stats | |
uses: dawidd6/action-download-artifact@v3 | |
if: success() && github.event.number | |
with: | |
workflow: bundle_size.yml | |
branch: ${{ github.event.pull_request.base.ref }} | |
path: .next/analyze/base | |
- name: Compare with base branch bundle | |
if: success() && github.event.number | |
run: ls -laR .next/analyze/base && bun run bundle:compare | |
- name: Get Comment Body | |
id: get-comment-body | |
if: success() && github.event.number | |
run: | | |
echo "body<<EOF" >> $GITHUB_OUTPUT | |
echo "$(cat .next/analyze/__bundle_analysis_comment.txt)" >> $GITHUB_OUTPUT | |
echo EOF >> $GITHUB_OUTPUT | |
- name: Find Comment | |
uses: peter-evans/find-comment@v2 | |
if: success() && github.event.number | |
id: fc | |
with: | |
issue-number: ${{ github.event.number }} | |
body-includes: '<!-- __NEXTJS_BUNDLE -->' | |
- name: Create Comment | |
uses: peter-evans/create-or-update-comment@v3 | |
if: success() && github.event.number && steps.fc.outputs.comment-id == 0 | |
with: | |
issue-number: ${{ github.event.number }} | |
body: ${{ steps.get-comment-body.outputs.body }} | |
- name: Update Comment | |
uses: peter-evans/create-or-update-comment@v3 | |
if: success() && github.event.number && steps.fc.outputs.comment-id != 0 | |
with: | |
issue-number: ${{ github.event.number }} | |
body: ${{ steps.get-comment-body.outputs.body }} | |
comment-id: ${{ steps.fc.outputs.comment-id }} | |
edit-mode: replace |