Skip to content

Attempt to make codecov less important #745

Attempt to make codecov less important

Attempt to make codecov less important #745

Workflow file for this run

name: main
on:
push:
branches:
- main
tags:
- "*"
pull_request:
concurrency:
group: ci-main-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
env:
PYTEST_ADDOPTS: "--color=yes"
# Set permissions at the job level.
permissions: {}
jobs:
test:
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.allow_failure }}
timeout-minutes: 15
permissions:
contents: read
strategy:
fail-fast: false
matrix:
include:
- name: linting,docs
python: '3.13'
allow_failure: false
# # Explicitly test min pytest.
# - name: py313-dj52-sqlite-pytestmin-coverage
# python: '3.13'
# allow_failure: false
# - name: py313-dj52-postgres-xdist-coverage
# python: '3.13'
# allow_failure: false
# - name: py313-dj51-postgres-xdist-coverage
# python: '3.13'
# allow_failure: false
# - name: py312-dj42-postgres-xdist-coverage
# python: '3.12'
# allow_failure: false
# - name: py311-dj50-postgres-xdist-coverage
# python: '3.11'
# allow_failure: false
# - name: py311-dj42-postgres-xdist-coverage
# python: '3.11'
# allow_failure: false
# - name: py310-dj52-postgres-xdist-coverage
# python: '3.10'
# allow_failure: false
# - name: py310-dj51-postgres-xdist-coverage
# python: '3.10'
# allow_failure: false
# - name: py310-dj42-postgres-xdist-coverage
# python: '3.10'
# allow_failure: false
# - name: py311-dj51-mysql-coverage
# python: '3.11'
# allow_failure: false
# - name: py310-dj42-mysql-coverage
# python: '3.10'
# allow_failure: false
# - name: py39-dj42-mysql-xdist-coverage
# python: '3.9'
# allow_failure: false
# - name: py313-djmain-sqlite-coverage
# python: '3.13'
# allow_failure: true
- name: py313-dj52-sqlite-coverage
python: '3.13'
allow_failure: true
- name: py312-dj51-sqlite-xdist-coverage
python: '3.12'
allow_failure: false
- name: py311-dj42-sqlite-xdist-coverage
python: '3.11'
allow_failure: false
# - name: pypy3-dj42-postgres-coverage
# python: 'pypy3.9'
# allow_failure: false
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Setup mysql
if: contains(matrix.name, 'mysql')
run: |
sudo systemctl start mysql.service
echo "TEST_DB_USER=root" >> $GITHUB_ENV
echo "TEST_DB_PASSWORD=root" >> $GITHUB_ENV
- name: Setup postgresql
if: contains(matrix.name, 'postgres')
run: |
sudo systemctl start postgresql.service
sudo -u postgres createuser --createdb $USER
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install tox==4.26.0
- name: Run tox
run: tox -e ${{ matrix.name }}
- name: Prepare coverage file for upload
if: contains(matrix.name, 'coverage')
run: mv .coverage coverage.${{ matrix.name }}
- name: Upload temporary coverage artifact
if: contains(matrix.name, 'coverage')
uses: actions/upload-artifact@v4
with:
name: coverage-artifact-${{ matrix.name }}
path: coverage.${{ matrix.name }}
retention-days: 1
report-coverage:
name: Report Combined Coverage
runs-on: ubuntu-latest
needs: test
if: always()
permissions:
contents: read
actions: read
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install coverage tool
run: python -m pip install coverage[toml]
- name: Download all coverage artifacts
uses: actions/download-artifact@v4
with:
path: downloaded-coverage-artifacts
pattern: coverage-artifact-*
- name: Combine coverage reports
run: |
mkdir combined_coverage_data
find downloaded-coverage-artifacts -type f -name 'coverage.*' -exec cp {} combined_coverage_data/ \;
echo "Files in combined_coverage_data for combining:"
ls -R combined_coverage_data
coverage combine combined_coverage_data/*
coverage xml
ls -lsad
- name: Report coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
verbose: true
check:
if: always()
needs:
- report-coverage
runs-on: ubuntu-latest
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@223e4bb7a751b91f43eda76992bcfbf23b8b0302
with:
jobs: ${{ toJSON(needs) }}