diff --git a/.coveragerc b/.coveragerc index b48299d3d7..26fe680f84 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,6 +1,7 @@ # .coveragerc for edx-platform [run] -data_file = reports/${TEST_SUITE}.coverage +branch=true +data_file = reports/.coverage source = cms common/djangoapps diff --git a/.github/actions/unit-tests/action.yml b/.github/actions/unit-tests/action.yml index 71ca72a7da..404ab2cf57 100644 --- a/.github/actions/unit-tests/action.yml +++ b/.github/actions/unit-tests/action.yml @@ -16,7 +16,7 @@ runs: - name: run tests shell: bash run: | - python -Wd -m pytest -p no:randomly --ds=${{ env.settings_path }} ${{ env.unit_test_paths }} + python -Wd -m pytest -p no:randomly --ds=${{ env.settings_path }} ${{ env.unit_test_paths }} --cov=. - name: rename warnings json file if: success() diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 54ad4f5891..5ceb843926 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -42,7 +42,7 @@ jobs: run: sudo chown runner:runner -R .* - name: checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 # This gives Mongo several chances to start. We started getting flakiness # around 2022-02-15 wherein the start command would sometimes exit with: @@ -74,6 +74,16 @@ jobs: - name: Setup and run tests uses: ./.github/actions/unit-tests + - name: Renaming coverage data file + run: | + mv reports/.coverage reports/${{ matrix.shard_name }}.coverage + + - name: Upload coverage + uses: actions/upload-artifact@v3 + with: + name: coverage + path: reports/${{matrix.shard_name}}.coverage + # This job aggregates test results. It's the required check for branch protection. # https://github.com/marketplace/actions/alls-green#why # https://github.com/orgs/community/discussions/33579 @@ -96,7 +106,7 @@ jobs: steps: - name: sync directory owner run: sudo chown runner:runner -R .* - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: collect pytest warnings files uses: actions/download-artifact@v2 with: @@ -112,8 +122,41 @@ jobs: - name: save warning report if: success() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: pytest-warning-report-html path: | reports/pytest_warnings/warning_report_all.html + + # Combine and upload coverage reports. + coverage: + needs: run-tests + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [ 3.8 ] + steps: + - name: Checkout repo + uses: actions/checkout@v3 + + - name: Setup Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + - name: Download all artifacts + uses: actions/download-artifact@v3 + with: + name: coverage + path: reports + + - name: Install Python dependencies + run: | + pip install -r requirements/edx/coverage.txt + + - name: Run coverage + run: | + coverage combine reports/* + coverage report + coverage xml + - uses: codecov/codecov-action@v3