CI production build size summary #680
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |