name: Test Coverage

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]
    
env:
  CARGO_TERM_COLOR: always
  
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Create Test Media
      run: cd tests; sh create_test_media.sh
    - name: Install rustfilt 
      run: cargo install rustfilt
    - name: Install tapaulin
      run: cargo install cargo-tarpaulin
    - name: Build
      run: cargo build --verbose
    - name: Run tests
      run: cargo tarpaulin
      env:
        RUSTFLAGS: "-C instrument-coverage" 
    - name: rust-grcov
      # You may pin to the exact commit or the version.
      # uses: actions-rs/grcov@bb47b1ed7883a1502fa6875d562727ace2511248
      uses: actions-rs/grcov@v0.1.5
      # with:
        # Path to the configuration file (optional, relative to the repository root)
        # config: # optional, default is .github/actions-rs/grcov.yml
    - name: Codecov
      uses: codecov/codecov-action@v3.1.4

