From 9fc15d81a0682844f61325e5422761f5c604d711 Mon Sep 17 00:00:00 2001 From: Aakansha Doshi Date: Wed, 19 Jul 2023 21:19:10 +0530 Subject: [PATCH 1/3] ci: introduce bundle size for package @excalidraw/excalidraw (#6785) * ci: update bundle size limit * change the size script to track bundle size on the package excalidraw * fix build command * fix * remove * fix * update script * fix --- .github/workflows/size-limit.yml | 6 ++---- package.json | 6 +++--- scripts/buildPackageExcalidraw.js | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 scripts/buildPackageExcalidraw.js diff --git a/.github/workflows/size-limit.yml b/.github/workflows/size-limit.yml index cb532868e3..119cc8c394 100644 --- a/.github/workflows/size-limit.yml +++ b/.github/workflows/size-limit.yml @@ -1,4 +1,4 @@ -name: "size" +name: "Bundle Size check @excalidraw/excalidraw" on: pull_request: branches: @@ -15,12 +15,10 @@ jobs: uses: actions/setup-node@v3 with: node-version: 18.x - - name: Install and build - run: yarn --frozen-lockfile env: CI: true - uses: andresz1/size-limit-action@v1 with: github_token: ${{ secrets.GITHUB_TOKEN }} - build_script: build:app + build_script: size skip_step: install diff --git a/package.json b/package.json index 54c45c9a5c..44251d318e 100644 --- a/package.json +++ b/package.json @@ -146,13 +146,13 @@ "autorelease": "node scripts/autorelease.js", "prerelease": "node scripts/prerelease.js", "release": "node scripts/release.js", - "size": "yarn build:app && size-limit" + "size": "node scripts/buildPackageExcalidraw.js && size-limit" }, "size-limit": [ { - "limit": "500kb", "path": [ - "build/static/js/*.js" + "src/packages/excalidraw/dist/excalidraw.development.js", + "src/packages/excalidraw/dist/excalidraw.production.min.js" ] } ] diff --git a/scripts/buildPackageExcalidraw.js b/scripts/buildPackageExcalidraw.js new file mode 100644 index 0000000000..4e3234115d --- /dev/null +++ b/scripts/buildPackageExcalidraw.js @@ -0,0 +1,16 @@ +const { execSync } = require("child_process"); + +const excalidrawDir = `${__dirname}/../src/packages/excalidraw`; + +const build = () => { + try { + execSync(`yarn --frozen-lockfile`); + execSync(`yarn --frozen-lockfile`, { cwd: excalidrawDir }); + execSync(`yarn run build:umd`, { cwd: excalidrawDir }); + } catch (err) { + console.error(err); + process.exit(1); + } +}; + +build(); From 70888327a36f39b3c882635265865e29efb8ab28 Mon Sep 17 00:00:00 2001 From: Aakansha Doshi Date: Wed, 19 Jul 2023 22:07:18 +0530 Subject: [PATCH 2/3] fix: use subdirectory for @excalidraw/excalidraw size limit (#6787) * fix: use subdirectory for @excalidraw/excalidraw size limit * fix * update yml * update path * fix * fix * better --- .github/workflows/size-limit.yml | 8 +++++++- package.json | 13 ++----------- scripts/buildPackageExcalidraw.js | 16 ---------------- src/packages/excalidraw/package.json | 13 +++++++++++-- 4 files changed, 20 insertions(+), 30 deletions(-) delete mode 100644 scripts/buildPackageExcalidraw.js diff --git a/.github/workflows/size-limit.yml b/.github/workflows/size-limit.yml index 119cc8c394..8ced8ee037 100644 --- a/.github/workflows/size-limit.yml +++ b/.github/workflows/size-limit.yml @@ -15,10 +15,16 @@ jobs: uses: actions/setup-node@v3 with: node-version: 18.x + - name: Install + run: yarn --frozen-lockfile + - name: Install in src/packages/excalidraw + run: yarn --frozen-lockfile + working-directory: src/packages/excalidraw env: CI: true - uses: andresz1/size-limit-action@v1 with: github_token: ${{ secrets.GITHUB_TOKEN }} - build_script: size + build_script: build:umd skip_step: install + directory: src/packages/excalidraw diff --git a/package.json b/package.json index 44251d318e..a2fece2557 100644 --- a/package.json +++ b/package.json @@ -145,15 +145,6 @@ "test:coverage": "react-scripts test --passWithNoTests --coverage --watchAll", "autorelease": "node scripts/autorelease.js", "prerelease": "node scripts/prerelease.js", - "release": "node scripts/release.js", - "size": "node scripts/buildPackageExcalidraw.js && size-limit" - }, - "size-limit": [ - { - "path": [ - "src/packages/excalidraw/dist/excalidraw.development.js", - "src/packages/excalidraw/dist/excalidraw.production.min.js" - ] - } - ] + "release": "node scripts/release.js" + } } diff --git a/scripts/buildPackageExcalidraw.js b/scripts/buildPackageExcalidraw.js deleted file mode 100644 index 4e3234115d..0000000000 --- a/scripts/buildPackageExcalidraw.js +++ /dev/null @@ -1,16 +0,0 @@ -const { execSync } = require("child_process"); - -const excalidrawDir = `${__dirname}/../src/packages/excalidraw`; - -const build = () => { - try { - execSync(`yarn --frozen-lockfile`); - execSync(`yarn --frozen-lockfile`, { cwd: excalidrawDir }); - execSync(`yarn run build:umd`, { cwd: excalidrawDir }); - } catch (err) { - console.error(err); - process.exit(1); - } -}; - -build(); diff --git a/src/packages/excalidraw/package.json b/src/packages/excalidraw/package.json index 27ce245ee6..c1998bf89b 100644 --- a/src/packages/excalidraw/package.json +++ b/src/packages/excalidraw/package.json @@ -80,6 +80,15 @@ "pack": "yarn build:umd && yarn pack", "start": "webpack serve --config webpack.dev-server.config.js", "install:deps": "yarn install --frozen-lockfile && yarn --cwd ../../../", - "build:example": "EXAMPLE=true webpack --config webpack.dev-server.config.js && yarn gen:types" - } + "build:example": "EXAMPLE=true webpack --config webpack.dev-server.config.js && yarn gen:types", + "size": "yarn build:umd && size-limit" + }, + "size-limit": [ + { + "path": "dist/excalidraw.development.js" + }, + { + "path": "dist/excalidraw.production.min.js" + } + ] } From 5e3550fc1473c25686190b7a533cf5d3d6e0d3ae Mon Sep 17 00:00:00 2001 From: Aakansha Doshi Date: Thu, 20 Jul 2023 13:54:13 +0530 Subject: [PATCH 3/3] ci: structured build output from size-limit (#6788) * ci: better build output from size-limit * add size-limit.json * try with pull request target * fix * revert pull request target --- src/packages/excalidraw/.size-limit.json | 16 ++++++++++++++++ src/packages/excalidraw/package.json | 10 +--------- 2 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 src/packages/excalidraw/.size-limit.json diff --git a/src/packages/excalidraw/.size-limit.json b/src/packages/excalidraw/.size-limit.json new file mode 100644 index 0000000000..e95dd1758c --- /dev/null +++ b/src/packages/excalidraw/.size-limit.json @@ -0,0 +1,16 @@ +[ + { + "path": "dist/excalidraw.production.min.js", + "limit": "285 kB" + }, + { + "path": "dist/excalidraw-assets/locales", + "name": "dist/excalidraw-assets/locales", + "limit": "270 kB" + }, + { + "path": "dist/excalidraw-assets/vendor-*.js", + "name": "dist/excalidraw-assets/vendor*.js", + "limit": "30 kB" + } +] diff --git a/src/packages/excalidraw/package.json b/src/packages/excalidraw/package.json index c1998bf89b..042fbd58c2 100644 --- a/src/packages/excalidraw/package.json +++ b/src/packages/excalidraw/package.json @@ -82,13 +82,5 @@ "install:deps": "yarn install --frozen-lockfile && yarn --cwd ../../../", "build:example": "EXAMPLE=true webpack --config webpack.dev-server.config.js && yarn gen:types", "size": "yarn build:umd && size-limit" - }, - "size-limit": [ - { - "path": "dist/excalidraw.development.js" - }, - { - "path": "dist/excalidraw.production.min.js" - } - ] + } }