name: Coverage

on:
  pull_request:
  push:
    branches:
      - master

jobs:
  cover:
    name: Auto Codecov Coverage
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4

      - name: Install Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true

      - name: Install cargo-tarpaulin
        uses: baptiste0928/cargo-install@v3
        with:
          crate: cargo-tarpaulin

      - name: Run cargo-tarpaulin
        run: |
          cargo tarpaulin --no-default-features --features runtime-async-std,cached,glob,ip,watcher,logging,incremental,explain

      - name: Upload to codecov.io
        uses: codecov/codecov-action@v4
        with:
          token: ${{secrets.CODECOV_TOKEN}}
