Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add step to Build workflow to check for WASM runtime sizes #2888

Merged
merged 22 commits into from
Aug 27, 2024

Conversation

pLabarta
Copy link
Contributor

What does it do?

Adds a step to the Build workflow to check WASM runtime sizes. It checks both the current compressed size and compares the uncompressed runtimes to the target branch to generate a report.

What important points reviewers should know?

Is there something left for follow-up PRs?

What alternative implementations were considered?

Are there relevant PRs or issues in other repositories (Substrate, Polkadot, Frontier, Cumulus)?

What value does it bring to the blockchain users?

@pLabarta pLabarta added D2-notlive PR doesn't change runtime code (so can't be audited) B0-silent Changes should not be mentioned in any release notes labels Jul 31, 2024
Copy link
Contributor

github-actions bot commented Jul 31, 2024

Coverage Report

@@                      Coverage Diff                      @@
##           master   pablo-wasm-size-check-step     +/-   ##
=============================================================
  Coverage   80.97%                       80.97%   0.00%     
  Files         282                          282             
  Lines       81590                        81590             
=============================================================
  Hits        66065                        66065             
  Misses      15525                        15525             
Files Changed Coverage

Coverage generated Tue Aug 6 23:35:48 UTC 2024

@moonbeam-foundation moonbeam-foundation deleted a comment from github-actions bot Aug 5, 2024
Copy link
Contributor

github-actions bot commented Aug 5, 2024

WASM runtime size check:

Compared to target branch

Moonbase runtime: 2168 KB (no changes) ✅

Moonbeam runtime: 2104 KB (no changes) ✅

Moonriver runtime: 2108 KB (no changes) ✅

Compared to latest release (runtime-3100)

Moonbase runtime: 2168 KB (+152 KB compared to latest release) ⚠️

Moonbeam runtime: 2104 KB (+128 KB compared to latest release) ⚠️

Moonriver runtime: 2108 KB (+140 KB compared to latest release) ⚠️

@pLabarta pLabarta marked this pull request as ready for review August 5, 2024 14:33
@pLabarta pLabarta requested review from a team as code owners August 5, 2024 14:33
@pLabarta pLabarta requested a review from TarekkMA August 6, 2024 15:16
.github/workflows/build.yml Outdated Show resolved Hide resolved
@pLabarta pLabarta requested a review from noandrea August 12, 2024 14:35
@noandrea noandrea merged commit 84bbe13 into master Aug 27, 2024
38 checks passed
@noandrea noandrea deleted the pablo-wasm-size-check-step branch August 27, 2024 10:13
gonzamontiel pushed a commit that referenced this pull request Sep 4, 2024
* add simple wasm size check

* only run on pull requests

* add Github token to env

* fix download dir name

* try comparing previous and current runtimes

* change master branch with dynamic target branch ref

* add comparison to latest release

* test with older release

* download from release instead of workflow artifact

* debug release tag not saved to env

* debug some more

* use gh cli to get releases instead of git tag

* use gh api instead of releases

* remove get build id & fix awk parsing

* build runtimes with _, releases with -

* add comment to PR and format msg

* use markdown report & replace comment

* cat report & fix comment formatting

* add twiggy diff reports as artifacts

* use upload v4 & create reports dir

* rm: deprecated ::set-output cmd
librelois added a commit that referenced this pull request Oct 2, 2024
* point dependencies to moonbeam-polkadot-sdk-stable2407

* bump packages versions to match polkadot-sdk

* apply TransactionPov changes

* update runtime configs (wip)

* update imports

* mute hrmp channel moonriver - Litmus (#2914)

* Add step to Build workflow to check for WASM runtime sizes (#2888)

* add simple wasm size check

* only run on pull requests

* add Github token to env

* fix download dir name

* try comparing previous and current runtimes

* change master branch with dynamic target branch ref

* add comparison to latest release

* test with older release

* download from release instead of workflow artifact

* debug release tag not saved to env

* debug some more

* use gh cli to get releases instead of git tag

* use gh api instead of releases

* remove get build id & fix awk parsing

* build runtimes with _, releases with -

* add comment to PR and format msg

* use markdown report & replace comment

* cat report & fix comment formatting

* add twiggy diff reports as artifacts

* use upload v4 & create reports dir

* rm: deprecated ::set-output cmd

* add log event (#2918)

* Extract Storage Read costs for dev tests involved in #2786 (#2915)

* add: storage read cost constant

* update test-pov

* update xcm-v3 tests

* update xcm-v4 tests

* add storage read gas cost to constants

* update test-precompile

* load constant in beforeAll

* replace gas cost with weight to gas ratio

* Fix auto-pause xcm: incoming XCMP messages where dropped when auto-pause (#2913)

* chore: rename crate manual-xcm-rpc -> moonbeam-dev-rpc

* add RPC method test_skipRelayBlocks

* allow Root to resume XCM execution

* update moonkit pin

* add dev-test that trigger auto-pause of xcm

* prettier

* dev test auto-pause xcm: remove unused imports & improve test scenario

* add pallet-emergency-para-xcm to moonriver

* add pallet-emergency-para-xcm to moonbeam

* apply review suggestions

* Set the block size to 60mln gas for moonbeam (#2921)

* set the block size to 60mln gas for moonbeam

* update mbip-5 value in test

* Add pallet_parameters (moonbase only) (#2923)

* add pallet parameters

* XcmFeesAccount

* add copyrights

* add FeesTreasuryProportion
---------

Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>

* make moonbeam compile

* remove cumulus_pallet_dmp_queue

* remove unused import

* add proper para_id to MockValidationDataInherentDataProvider

* update config for tests

* add MockTimestampInherentDataProvider to simulate consistent and sequential relay slots

* Revert "apply TransactionPov changes"

This reverts commit 4382107.

* update cargo lock pins

* remove import of deleted TransacionPoV

* Make cargo test compile
* Add XcmRecorder to XcmConfig
* Add VersionWrapper to hrmp::COnfig
* Remove code from deprecated pallet treasury
* Remove code from deprecated DmpQueue
* Remove code from deprecated XCMV2

* remove deprecated tresury pallet tests, add some for the new functionality

* fix tests

* fix remaining dev tests

* fix licenses

* fix lazy loading backend for stable

* remove unused patch

* fix linters

* fix cargo test with benchmarking and tracing enabled

* fix lazy loading

* fix command for lazy loading

* update frontier pin

* support new 'stableYYMM' versioning for polkadot

* update polkadot sdk pin

* fix download-polkadot script

* simplify script

* Replace thread_local with AtomicU64 (as per review request)

* remove deprecated test code

* use latest version of nextest

* Update precompiles/collective/src/mock.rs

Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>

* apply review suggestions

* Revert "apply review suggestions"

This reverts commit 6daef57.

* apply review suggestions

* fix lazy-loading

* re add reset_issuance

* add missing weights

* remove unused var

* fix download correct binaries

* cargo fmt

* make polkadot worker binearies executable

* configure XcmRecorder for mocks

---------

Co-authored-by: Éloïs <c@elo.tf>
Co-authored-by: pablito テ <pablitolabarta@gmail.com>
Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>
Co-authored-by: Andrea Giacobino <no.andrea@gmail.com>
Co-authored-by: Tarek Mohamed Abdalla <tarekkma@gmail.com>
Co-authored-by: Rodrigo Quelhas <rodrigo_quelhas@outlook.pt>
Co-authored-by: Agusrodri <agusrodriguez2456@gmail.com>
Agusrodri added a commit that referenced this pull request Oct 2, 2024
…#2980)

* point dependencies to moonbeam-polkadot-sdk-stable2407

* bump packages versions to match polkadot-sdk

* apply TransactionPov changes

* update runtime configs (wip)

* update imports

* mute hrmp channel moonriver - Litmus (#2914)

* Add step to Build workflow to check for WASM runtime sizes (#2888)

* add simple wasm size check

* only run on pull requests

* add Github token to env

* fix download dir name

* try comparing previous and current runtimes

* change master branch with dynamic target branch ref

* add comparison to latest release

* test with older release

* download from release instead of workflow artifact

* debug release tag not saved to env

* debug some more

* use gh cli to get releases instead of git tag

* use gh api instead of releases

* remove get build id & fix awk parsing

* build runtimes with _, releases with -

* add comment to PR and format msg

* use markdown report & replace comment

* cat report & fix comment formatting

* add twiggy diff reports as artifacts

* use upload v4 & create reports dir

* rm: deprecated ::set-output cmd

* add log event (#2918)

* Extract Storage Read costs for dev tests involved in #2786 (#2915)

* add: storage read cost constant

* update test-pov

* update xcm-v3 tests

* update xcm-v4 tests

* add storage read gas cost to constants

* update test-precompile

* load constant in beforeAll

* replace gas cost with weight to gas ratio

* Fix auto-pause xcm: incoming XCMP messages where dropped when auto-pause (#2913)

* chore: rename crate manual-xcm-rpc -> moonbeam-dev-rpc

* add RPC method test_skipRelayBlocks

* allow Root to resume XCM execution

* update moonkit pin

* add dev-test that trigger auto-pause of xcm

* prettier

* dev test auto-pause xcm: remove unused imports & improve test scenario

* add pallet-emergency-para-xcm to moonriver

* add pallet-emergency-para-xcm to moonbeam

* apply review suggestions

* Set the block size to 60mln gas for moonbeam (#2921)

* set the block size to 60mln gas for moonbeam

* update mbip-5 value in test

* Add pallet_parameters (moonbase only) (#2923)

* add pallet parameters

* XcmFeesAccount

* add copyrights

* add FeesTreasuryProportion
---------

Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>

* make moonbeam compile

* remove cumulus_pallet_dmp_queue

* remove unused import

* add proper para_id to MockValidationDataInherentDataProvider

* update config for tests

* add MockTimestampInherentDataProvider to simulate consistent and sequential relay slots

* Revert "apply TransactionPov changes"

This reverts commit 4382107.

* update cargo lock pins

* remove import of deleted TransacionPoV

* Make cargo test compile
* Add XcmRecorder to XcmConfig
* Add VersionWrapper to hrmp::COnfig
* Remove code from deprecated pallet treasury
* Remove code from deprecated DmpQueue
* Remove code from deprecated XCMV2

* remove deprecated tresury pallet tests, add some for the new functionality

* fix tests

* fix remaining dev tests

* fix licenses

* fix lazy loading backend for stable

* remove unused patch

* fix linters

* fix cargo test with benchmarking and tracing enabled

* fix lazy loading

* fix command for lazy loading

* update frontier pin

* support new 'stableYYMM' versioning for polkadot

* update polkadot sdk pin

* fix download-polkadot script

* simplify script

* Replace thread_local with AtomicU64 (as per review request)

* remove deprecated test code

* use latest version of nextest

* add DryRunApi and LocationToAccountApi

* Update precompiles/collective/src/mock.rs

Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>

* apply review suggestions

* Revert "apply review suggestions"

This reverts commit 6daef57.

* apply review suggestions

* fix lazy-loading

* re add reset_issuance

* add missing weights

* remove unused var

* add TS tests

* cleanup

* fmt

* fix download correct binaries

* cargo fmt

* make polkadot worker binearies executable

* configure XcmRecorder for mocks

---------

Co-authored-by: Gonza Montiel <gon.montiel@gmail.com>
Co-authored-by: Éloïs <c@elo.tf>
Co-authored-by: pablito テ <pablitolabarta@gmail.com>
Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>
Co-authored-by: Andrea Giacobino <no.andrea@gmail.com>
Co-authored-by: Tarek Mohamed Abdalla <tarekkma@gmail.com>
Co-authored-by: Rodrigo Quelhas <rodrigo_quelhas@outlook.pt>
Co-authored-by: Gonza Montiel <gonzamontiel@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B0-silent Changes should not be mentioned in any release notes D2-notlive PR doesn't change runtime code (so can't be audited)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants