diff --git a/.github/actions/report-size/action.yml b/.github/actions/report-size/action.yml new file mode 100644 index 000000000..e39b8bab3 --- /dev/null +++ b/.github/actions/report-size/action.yml @@ -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@v3 + with: + ref: ${{ inputs.branch }} + path: br-base + token: ${{ inputs.ghToken }} + + # Generate the bundle size difference report [required] + - name: Generate report + id: bundleSize + uses: nejcm/bundle-size-reporter-action@v1.4.1 + with: + paths: ${{ inputs.paths }} + onlyDiff: ${{ inputs.onlyDiff }} + filter: ${{ inputs.filter }} + unit: ${{ inputs.unit }} + + # 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 }}' + GITHUB_TOKEN: ${{ inputs.ghToken }} diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index e7bff39e9..ae8b8a766 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -16,6 +16,39 @@ env: TEST_TAG: ${{ github.repository_owner }}/notes:test jobs: + report-electron-size: + name: Report Electron size + runs-on: ubuntu-latest + steps: + - name: Checkout the repository + uses: actions/checkout@v4 + + - name: Set up node & dependencies + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: "npm" + + - run: npm ci + + - name: Run the build + uses: ./.github/actions/build-electron + with: + os: linux + arch: x64 + shell: bash + forge_platform: linux + + - name: Run the Electron size report + uses: ./.github/actions/report-size + with: + paths: 'upload/**/*' + onlyDiff: 'true' + branch: 'develop' + header: 'Electron size report' + unit: 'MB' + ghToken: ${{ secrets.GITHUB_TOKEN }} + test_dev: name: Test development runs-on: ubuntu-latest