name: Rust on: [push, pull_request] env: CARGO_TERM_COLOR: always jobs: check: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@stable with: targets: x86_64-pc-windows-gnu components: clippy, rustfmt - name: Run checks env: CLIPPY_OPTS: --all-targets run: | cargo fmt --check cargo clippy $CLIPPY_OPTS cargo clippy --target x86_64-pc-windows-gnu $CLIPPY_OPTS test-win: runs-on: windows-latest strategy: matrix: target: - i686-pc-windows-gnu - i686-pc-windows-msvc - x86_64-pc-windows-gnu - x86_64-pc-windows-msvc steps: - name: Checkout uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@master with: toolchain: stable-${{ matrix.target }} - name: Run tests run: cargo test --all-features test-macos: runs-on: macos-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@stable - name: Run tests run: cargo test --all-features test-linux: runs-on: ubuntu-latest strategy: matrix: target: - i686-unknown-linux-gnu - i686-unknown-linux-musl - x86_64-unknown-linux-gnu - x86_64-unknown-linux-musl steps: - name: Checkout uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@stable with: target: ${{ matrix.target }} - name: Install multilib if: ${{ contains(matrix.target, 'i686-unknown-linux-') }} run: | sudo apt update -yqq sudo apt install gcc-multilib - name: Run tests run: cargo test --all-features --target ${{ matrix.target }} check-stub: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@stable with: targets: wasm32-unknown-unknown - name: Run check run: cargo check --all-features --target wasm32-unknown-unknown test-msrv: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@1.36.0 # do not test, because dev-dependencies do not follow MSRV - name: Build run: cargo build --all-features