name: Rust on: pull_request: push: branches: - main env: CARGO_TERM_COLOR: always jobs: test: name: Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Install Rust stable toolchain uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Test run: | cargo test fmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Install Rust stable toolchain uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Format run: | cargo fmt --all -- --check clippy: name: Clippy runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Rust stable toolchain uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Lint run: | cargo clippy -- -D warnings docs: name: Docs runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Install Rust stable toolchain uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Document run: | cargo doc --no-deps --document-private-items coverage: runs-on: ubuntu-latest env: CARGO_TERM_COLOR: always steps: - uses: actions/checkout@v5 - name: Install Rust stable toolchain uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-llvm-cov uses: taiki-e/install-action@cargo-llvm-cov - name: Generate code coverage run: cargo llvm-cov --all-features --workspace --codecov --output-path codecov.json - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} files: codecov.json fail_ci_if_error: true