name: Coverage
on:
  push:
    branches:
      - development
      - cov-*
env:
  RUSTUP_TOOLCHAIN: "nightly"
jobs:
  coverage:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
        with:
          submodules: "true"
      - name: Install dependencies
        run: |
          sudo apt update
          sudo apt install -y jq lcov
      - name: Download Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true
          components: llvm-tools-preview
      - name: Install requirements for code coverage
        run: |
          cargo install cargo-binutils
          cargo install rustfilt
      - name: Run test coverage
        id: coverage
        env:
          SKIP_HTML: "1"
        run: |
          /bin/bash -c ./code_coverage.sh
      - name: Coveralls upload
        uses: coverallsapp/github-action@master
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          path-to-lcov: ./cov_raw/randomx-rs.lcov
