name: Rust on: push: branches: ["main"] pull_request: branches: ["main"] env: CARGO_TERM_COLOR: always jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: 1.95.0 components: rustfmt, clippy - name: Install native dependencies run: sudo apt-get update && sudo apt-get install -y libdbus-1-dev pkg-config - uses: actions/cache@v4 with: path: | ~/.cargo/bin ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Install just run: command -v just || cargo install just - name: Run checks run: just check coverage: runs-on: ubuntu-latest needs: check # optional but recommended steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: 1.95.0 - name: Install native dependencies run: sudo apt-get update && sudo apt-get install -y libdbus-1-dev pkg-config - uses: actions/cache@v4 with: path: | ~/.cargo/bin ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Install tarpaulin run: cargo install cargo-tarpaulin --locked - name: Run coverage run: cargo tarpaulin --out Xml -- --test-threads 1 - name: Upload to Codecov uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }}