name: Test on: push: branches: [main] pull_request: branches: [main] env: CARGO_TERM_COLOR: always jobs: browser-test: name: Test on ${{ matrix.browser }} (using rustc ${{ matrix.rust }}) runs-on: ${{ matrix.os }} strategy: matrix: rust: - 1.63.0 - stable - nightly browser: - firefox - chrome os: - ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup Rust uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust }} override: true - name: Install wasm-pack run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - name: Cargo generate-lockfile run: cargo generate-lockfile - name: Cargo cache uses: actions/cache@v2 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ matrix.rust }}-${{ hashFiles('**/Cargo.lock') }} - name: Run headless browser tests with default features run: wasm-pack test --${{ matrix.browser }} --headless - name: Run headless browser tests with all features run: wasm-pack test --${{ matrix.browser }} --headless --all-features clippy: name: Clippy runs-on: ubuntu-latest env: RUSTFLAGS: -Dwarnings steps: - uses: actions/checkout@v2 - name: Setup Rust uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Cargo generate-lockfile run: cargo generate-lockfile - name: Cargo cache uses: actions/cache@v2 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Run clippy run: cargo clippy miri: name: Miri runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Miri run: | MIRI_NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri) echo "Installing latest nightly with Miri: $MIRI_NIGHTLY" rustup set profile minimal rustup default "$MIRI_NIGHTLY" rustup component add miri - name: Cargo generate-lockfile run: cargo generate-lockfile - name: Cargo cache uses: actions/cache@v2 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Run tests with all features run: | cargo miri test --all-features