Release 0.7.0 #64
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: [main, dev] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| rust-tests: | |
| name: Rust Tests (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: wasm32-unknown-unknown | |
| - name: Cache cargo | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} | |
| - name: Run Rust tests | |
| run: cargo test | |
| js-tests: | |
| name: JS Tests (node ${{ matrix.node-version }}, ${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| node-version: [20, 22] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: wasm32-unknown-unknown | |
| - name: Cache cargo | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} | |
| - name: Install wasm-pack | |
| run: cargo install wasm-pack | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install dependencies | |
| run: npm install | |
| - name: Build WASM + TypeScript | |
| run: npm run build | |
| - name: Run JS tests with coverage | |
| run: npm run test:coverage | |
| - name: Run packed artifact smoke test | |
| if: matrix.os == 'ubuntu-latest' && matrix.node-version == 22 | |
| run: npm run test:pack | |
| - name: Run benchmarks | |
| if: matrix.os == 'ubuntu-latest' && matrix.node-version == 22 | |
| run: npx vitest bench --run | |
| - name: Upload benchmark results | |
| if: matrix.os == 'ubuntu-latest' && matrix.node-version == 22 | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: benchmark-results | |
| path: benchmarks/results/benchmark-results.json | |
| if-no-files-found: ignore | |
| - name: Upload coverage to Codecov | |
| if: matrix.os == 'ubuntu-latest' && matrix.node-version == 20 | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: coverage/coverage-final.json | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: true |