Skip to content

CI production build size summary #680

CI production build size summary

CI production build size summary #680

Workflow file for this run

name: Build and Test
on:
push:
branches:
- main
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- uses: Swatinem/rust-cache@v2
- run: wasm-pack build --dev --target nodejs
- run: wasm-pack test --node
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
- run: cargo install cargo-all-features
- name: Check all combinations of features can build
run: cargo check-all-features --target wasm32-unknown-unknown
node-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-node@v4
with:
node-version: "20"
- name: Build bundle
run: yarn build:test
- name: Install dev dependencies
run: yarn
- name: Run Node tests
run: yarn test
fmt:
name: fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- uses: Swatinem/rust-cache@v2
- name: Run
run: cargo fmt --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- name: "clippy --all"
run: cargo clippy --all --features=full --tests -- -D warnings
node-build-report:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-node@v4
with:
node-version: "20"
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: brotli pv parallel
version: 1.0
- name: Build bundle
run: yarn build
- name: Size Reporting
run: |
ls pkg/*/*.wasm | parallel brotli -f -Z {}
echo "| Asset | Size | Compressed Size |" >> $GITHUB_STEP_SUMMARY
echo "| ------ | ---- | --------------- |" >> $GITHUB_STEP_SUMMARY
for asset in $(ls pkg/*/*.wasm); do
SIZE=$(cat $asset | pv -f -b 2>&1 >/dev/null | tr -d '\n\r')
COMPRESSED_SIZE=$(cat "${asset}.br" | pv -f -b 2>&1 >/dev/null | tr -d '\n\r')
echo "| ${asset} | $SIZE | $COMPRESSED_SIZE |" >> $GITHUB_STEP_SUMMARY
done;
cp $GITHUB_STEP_SUMMARY fixed_output.md
- name: Comment PR with summary output
uses: thollander/actions-comment-pull-request@v2
with:
filePath: fixed_output.md
comment_tag: execution