name: Upload code coverage for a merged PR to codecov.io

on:
  push:
    branches:
    - master

jobs:
  build:
    runs-on: ubuntu-22.04
    name: Submit code coverage from merged PR
    steps:
    - uses: actions/checkout@v3
    - name: Install testing-farm script
      run: pip3 -v install tft-cli
    - name: Run tests on Testing Farm
      run: testing-farm request --context distro=fedora-37 --arch x86_64 --compose Fedora-37 --plan '/e2e-with-revocation' -e UPLOAD_COVERAGE=1 2>&1 | tee tt_output
      env:
        TESTING_FARM_API_TOKEN: ${{ secrets.TESTING_FARM_API_TOKEN }}
    - name: Find PR Packit tests to finish and download coverage.xml file
      run: grep -q 'tests passed' tt_output && sleep 20 && scripts/download_packit_coverage.sh --testing-farm-log tt_output
      env:
        MAX_DURATION: 120
        SLEEP_DELAY: 20
    - name: List downloaded files
      run: ls coverage*
    - name: Upload coverage.unittests.xml report to Codecov with GitHub Action
      uses: codecov/codecov-action@v2
      with:
        files: coverage.unittests.xml
        flags: unittests
    - name: Upload coverage.testsuite.xml report to Codecov with GitHub Action
      uses: codecov/codecov-action@v2
      with:
        files: coverage.testsuite.xml
        flags: testsuite
    - name: Upload coverage.packit.xml report to Codecov with GitHub Action
      uses: codecov/codecov-action@v2
      with:
        files: coverage.packit.xml
        flags: packit-e2e
