name: CI on: push: branches: - main - develop pull_request: jobs: test: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: stable target: wasm32-unknown-unknown components: clippy, rustfmt - name: Install wasm-pack run: | curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - name: Check formatting run: cargo fmt --all -- --check - name: Run clippy run: cargo clippy --all-targets --all-features -- -D warnings - name: Build WASM package run: | wasm-pack build --target bundler --out-dir pkg - name: Check bundle size run: | echo "WASM bundle size:" du -h pkg/pastel_wasm_bg.wasm size=$(du -b pkg/pastel_wasm_bg.wasm | cut -f1) echo "Size in bytes: $size" # Fail if bundle is larger than 200KB if [ $size -gt 204800 ]; then echo "Error: WASM bundle is larger than 200KB!" exit 1 fi - name: Upload WASM artifact uses: actions/upload-artifact@v4 with: name: wasm-package path: pkg/