File tree Expand file tree Collapse file tree 5 files changed +116
-2
lines changed Expand file tree Collapse file tree 5 files changed +116
-2
lines changed Original file line number Diff line number Diff line change @@ -115,3 +115,41 @@ jobs:
115
115
uses : actions/checkout@v3
116
116
- name : Run shellcheck
117
117
118
+ # Show WASM bundle size summary as a message in the pull request
119
+ bundle-size :
120
+ if : ${{ github.event_name == 'pull_request' }}
121
+ runs-on : ubuntu-latest
122
+ steps :
123
+ - name : Checking out
124
+ uses : actions/checkout@v3
125
+ - name : Install Rust toolchain
126
+ uses : ./.github/actions/rust-cargo-run
127
+ with :
128
+ command : version
129
+ github_token : ${{ secrets.GITHUB_TOKEN }}
130
+ save_cache : true
131
+ - name : Generate bundle delta summary
132
+ id : bundle-summary
133
+ run : |
134
+ echo 'bundle-summary<<EOF' >> $GITHUB_ENV
135
+ make bundle-size | tail -n3 >> $GITHUB_ENV
136
+ echo 'EOF' >> $GITHUB_ENV
137
+ # Find a relevant comment from GH bot to update if there is one
138
+ - name : Find Comment
139
+ uses : peter-evans/find-comment@v2
140
+ id : fc
141
+ with :
142
+ issue-number : ${{ github.event.pull_request.number }}
143
+ comment-author : ' github-actions[bot]'
144
+ body-regex : " ^### WASM bundle summary"
145
+ - name : Create or update comment
146
+ uses : peter-evans/create-or-update-comment@v2
147
+ with :
148
+ comment-id : ${{ steps.fc.outputs.comment-id }}
149
+ issue-number : ${{ github.event.pull_request.number }}
150
+ body : |
151
+ ### WASM bundle summary 📦
152
+ ```
153
+ ${{ env.bundle-summary }}
154
+ ```
155
+ edit-mode : replace
Original file line number Diff line number Diff line change
1
+ name : Update WASM bundle size
2
+
3
+ on :
4
+ push :
5
+ branches :
6
+ - master
7
+
8
+ # Updates the `bundle-size` on the master branch, pushes a commit from the Github
9
+ # bot (doesn't trigger the CI thanks to the magic message)
10
+ jobs :
11
+ bundle-size :
12
+ runs-on : ubuntu-latest
13
+ steps :
14
+ - name : Checking out
15
+ uses : actions/checkout@v3
16
+ with :
17
+ ref : ${{ github.head_ref }}
18
+ fetch-depth : 0
19
+ - name : Install Rust toolchain
20
+ uses : ./.github/actions/rust-cargo-run
21
+ with :
22
+ command : version
23
+ github_token : ${{ secrets.GITHUB_TOKEN }}
24
+ save_cache : true
25
+ - name : Update bundle size
26
+ run : |
27
+ git config --local user.email "github-actions[bot]@users.noreply.github.com"
28
+ git config --local user.name "github-actions[bot]"
29
+ make bundle-size
30
+ git add bundle-size
31
+ git commit -m "[skip ci] update bundle-size" || true
32
+ - name : Push changes
33
+ uses : ad-m/github-push-action@master
34
+ with :
35
+ github_token : ${{ secrets.GITHUB_TOKEN }}
36
+ branch : ${{ github.head_ref }}
Original file line number Diff line number Diff line change @@ -42,7 +42,11 @@ publish:
42
42
43
43
# Create a bundle in a deterministic location
44
44
bundle : deps-build
45
- cargo run -- -o output/builtin-actors.car
45
+ cargo run --locked -- -o output/builtin-actors.car
46
+
47
+ # Update the bundle size file, print the summary
48
+ bundle-size : bundle
49
+ @bash scripts/update-bundle-size.sh $@ output/builtin-actors.car
46
50
47
51
# Create all canonical network bundles
48
52
all-bundles : bundle-mainnet bundle-caterpillarnet bundle-butterflynet bundle-calibrationnet bundle-devnet bundle-testing bundle-testing
@@ -66,7 +70,8 @@ bundle-testing: deps-build
66
70
BUILD_FIL_NETWORK=testing cargo run -- -o output/builtin-actors-testing.car
67
71
BUILD_FIL_NETWORK=testing-fake-proofs cargo run -- -o output/builtin-actors-testing-fake-proofs.car
68
72
69
- .PHONY : all-bundles bundle-mainnet bundle-caterpillarnet bundle-butterflynet bundle-calibrationnet bundle-devnet bundle-testing
73
+
74
+ .PHONY : all-bundles bundle-mainnet bundle-caterpillarnet bundle-butterflynet bundle-calibrationnet bundle-devnet bundle-testing bundle-size
70
75
71
76
# Check if the working tree is clean.
72
77
check-clean :
Original file line number Diff line number Diff line change
1
+ 6030520
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+ # Checks and updates bundle size file, printing delta between the previous and current bundle size.
3
+
4
+ # Check if the user provided both arguments
5
+ if [ $# -ne 2 ]; then
6
+ echo " Usage: ./update-bundle-size.sh <bundle-size-path> <bundle-path>"
7
+ exit 1
8
+ fi
9
+
10
+ # Check if paths exist
11
+ if [[ ! -f $1 || ! -f $2 ]]; then
12
+ echo " Invalid arguments. Please check that the files exist."
13
+ exit 1
14
+ fi
15
+
16
+ bundle_size_path=$1
17
+ bundle_path=$2
18
+
19
+ # Grab the current bundle size
20
+ size_old=$( head -n 1 " $bundle_size_path " )
21
+
22
+ # Update bundle size
23
+ wc -c < " $bundle_path " > " $bundle_size_path "
24
+
25
+ # Grab the new bundle size
26
+ size_new=$( head -n 1 " $bundle_size_path " )
27
+
28
+ # Calculate the difference
29
+ diff=$(( size_new - size_old))
30
+
31
+ # Print stats
32
+ echo " Old bundle size: $size_old "
33
+ echo " New bundle size: $size_new "
34
+ echo " Delta: $diff bytes"
You can’t perform that action at this time.
0 commit comments