name: CI on: [push, pull_request] jobs: fmt: name: rustfmt / stable runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt - name: Rust rustfmt run: cargo fmt --all -- --check clippy: name: clippy / stable runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: clippy - name: Run clippy run: cargo clippy -- -D warnings test: name: test / ${{ matrix.name }} runs-on: ubuntu-latest strategy: matrix: include: - name: stable rust: stable - name: beta rust: beta - name: nightly rust: nightly - name: 1.63.0 rust: 1.63.0 steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} - name: Run tests run: cargo test - name: Run no_std tests run: cargo test --no-default-features coverage: name: coverage / stable runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Install cargo-tarpaulin run: | LINK="https://github.com/xd009642/tarpaulin/releases/download/0.31.2/cargo-tarpaulin-x86_64-unknown-linux-gnu.tar.gz" curl -L --output tarpaulin.tar.gz "$LINK" tar -xzvf tarpaulin.tar.gz chmod +x cargo-tarpaulin - name: Run cargo-tarpaulin run: ./cargo-tarpaulin tarpaulin --out Xml - name: Upload to codecov.io uses: codecov/codecov-action@v5 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - name: Archive code coverage results uses: actions/upload-artifact@v4 with: name: code-coverage-report path: cobertura.xml