diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..0c5a1a8 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,74 @@ +name: Tests + +on: + push: + branches: + - main + pull_request: + branches: + - "**" + +env: + CARGO_TERM_COLOR: always + +jobs: + test: + timeout-minutes: 20 + strategy: + matrix: + rust_version: + - stable + - "1.74.0" # MSRV + os: + - ubuntu-latest + - windows-latest + - macos-latest + runs-on: ${{ matrix.os }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + toolchain: ${{ matrix.rust_version }} + - name: Add rustfmt + run: rustup component add rustfmt + - name: Add clippy + run: rustup component add clippy + - name: Set up cargo cache + uses: Swatinem/rust-cache@v2 + with: + prefix-key: ${{ runner.os }}-cargo + - name: Build + run: cargo build -v + - name: Format + run: cargo fmt --all -- --check + - name: Clippy + run: cargo clippy + - name: Run tests + run: cargo test -v -- --nocapture + env: + RUST_LOG: debug + cross: + timeout-minutes: 20 + name: cross + strategy: + matrix: + target: + - aarch64-unknown-linux-gnu + # - aarch64-linux-android + - aarch64-unknown-linux-musl + # - i686-linux-android + # - x86_64-linux-android + # - i686-unknown-linux-gnu + - powerpc64-unknown-linux-gnu + #- mips64-unknown-linux-gnuabi64 + - riscv64gc-unknown-linux-gnu + #- x86_64-apple-darwin + #- aarch64-apple-darwin + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: cross build --target ${{ matrix.target }} + run: | + cargo install cross + cross build --target ${{ matrix.target }}