name: test on: [ push, pull_request ] env: CARGO_INCREMENTAL: 0 RUSTFLAGS: "-Dwarnings" RUSTDOCFLAGS: "-Dwarnings" jobs: build: runs-on: ubuntu-latest strategy: matrix: rust: - 1.72 # MSRV 1.70 GA flaky - stable target: - thumbv7em-none-eabi - wasm32-unknown-unknown - s390x-unknown-linux-gnu - powerpc64-unknown-linux-gnu - riscv64gc-unknown-none-elf - x86_64-pc-windows-gnu - x86_64-apple-darwin steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} targets: ${{ matrix.target }} - run: cargo build --target ${{ matrix.target }} --release --no-default-features --features "slh_dsa_sha2_128s slh_dsa_shake_128s slh_dsa_sha2_128f slh_dsa_shake_128f slh_dsa_sha2_192s slh_dsa_shake_192s slh_dsa_sha2_192f slh_dsa_shake_192f slh_dsa_sha2_256s slh_dsa_shake_256s slh_dsa_sha2_256f slh_dsa_shake_256f" cargo_audit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: rustsec/audit-check@v1.4.1 with: token: ${{ secrets.GITHUB_TOKEN }} cargo-deny: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: EmbarkStudios/cargo-deny-action@v1 cargo_outdated: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Install cargo outdated run: cargo install --locked cargo-outdated - name: Run cargo outdated run: cargo outdated -R clippy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run Clippy run: cargo clippy --all-targets --all-features coverage: runs-on: ubuntu-latest env: CARGO_TERM_COLOR: always steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Install cargo-llvm-cov uses: taiki-e/install-action@cargo-llvm-cov - name: Generate code coverage run: cargo llvm-cov --all-features --workspace # No codecov account, so stop here for now # - name: Upload coverage to Codecov # uses: codecov/codecov-action@v3 # with: # files: lcov.info # fail_ci_if_error: true cross: strategy: matrix: include: # ARM32 - target: armv7-unknown-linux-gnueabihf rust: 1.72 # MSRV 1.70 GA flaky - target: armv7-unknown-linux-gnueabihf rust: stable # ARM64 - target: aarch64-unknown-linux-gnu rust: 1.72 # MSRV 1.70 GA flaky - target: aarch64-unknown-linux-gnu rust: stable # PPC32 - target: powerpc-unknown-linux-gnu rust: 1.72 # MSRV 1.70 GA flaky - target: powerpc-unknown-linux-gnu rust: stable runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: ${{ matrix.deps }} - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} targets: ${{ matrix.target }} - uses: RustCrypto/actions/cross-install@master - run: cross test --target ${{ matrix.target }} --all-features doc: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: RustCrypto/actions/cargo-cache@master - uses: dtolnay/rust-toolchain@master with: toolchain: stable - run: cargo doc --all-features test: runs-on: ubuntu-latest strategy: matrix: include: # 32-bit Linux - target: i686-unknown-linux-gnu rust: 1.72.0 # MSRV 1.70 GA flaky deps: sudo apt update && sudo apt install gcc-multilib - target: i686-unknown-linux-gnu rust: stable deps: sudo apt update && sudo apt install gcc-multilib # 64-bit Linux - target: x86_64-unknown-linux-gnu rust: 1.72.0 # MSRV 1.70 GA flaky - target: x86_64-unknown-linux-gnu rust: stable steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} targets: ${{ matrix.target }} - run: ${{ matrix.deps }} - run: cargo check --target ${{ matrix.target }} --all-features - run: cargo test --target ${{ matrix.target }}