Skip to content

Commit

Permalink
ci: add coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
kod-kristoff committed Jan 15, 2024
1 parent 8d9756a commit 5f83a06
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 98 deletions.
192 changes: 96 additions & 96 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,111 +50,111 @@ jobs:
- name: ${{ matrix.task.name }}
run: ${{ matrix.task.run }}

# coverage:
# name: "Test py-${{ matrix.python-version }} (${{ matrix.os }})"
# strategy:
# max-parallel: 4
# fail-fast: false
# matrix:
# # ignore windows for now
# os: [ubuntu] #, macos] # , windows-latest]
# python-version:
# - "3.9"
# - "3.10"
# - "3.11"
# - "3.12"
coverage:
name: "Test py-${{ matrix.python-version }} (${{ matrix.os }})"
strategy:
max-parallel: 4
fail-fast: false
matrix:
os: [ubuntu]
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"

# continue-on-error: >-
# ${{ contains(matrix.python-version, 'dev') && true || false }}

# runs-on: ${{ matrix.os }}-latest
# steps:
# #----------------------------------------------
# # check-out repo and set-up python
# #----------------------------------------------
# - name: Check out repository
# uses: actions/checkout@v4

# #----------------------------------------------
# # ----- install & configure python & rye -----
# #----------------------------------------------
# - name: Set up the environment
# uses: ./.github/actions/setup-python-env
# with:
# python-version: ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}-latest
steps:
#----------------------------------------------
# check-out repo and set-up python
#----------------------------------------------
- name: Check out repository
uses: actions/checkout@v4

#----------------------------------------------
# ----- install & configure python & rye -----
#----------------------------------------------
- name: Set up the environment
uses: ./.github/actions/setup-python-env
with:
python-version: ${{ matrix.python-version }}

#
# #----------------------------------------------
# # Run tests and upload coverage
# #----------------------------------------------
# - name: Run tests for coverage
# run: make test-w-coverage

# - name: copy coverage
# run: |
# mkdir coverage
# cp -v .coverage coverage/.coverage.${{ matrix.os }}-py${{ matrix.python-version }}

# - name: store coverage files
# uses: actions/upload-artifact@v3
# with:
# name: coverage
# path: coverage


# upload-coverage:
# name: Upload test coverage to CodeCov
# needs: [coverage]
# runs-on: ubuntu-latest
# permissions:
# statuses: write
# steps:
# #----------------------------------------------
# # check-out repo and set-up python
# #----------------------------------------------
# - name: Check out repository
# uses: actions/checkout@v4
# - name: Set up python ${{ env.MINIMUM_PYTHON_VERSION }}
# id: setup-python
# uses: actions/setup-python@v5
# with:
# python-version: ${{ env.MINIMUM_PYTHON_VERSION }}

# #----------------------------------------------
# # install dependencies if cache does not exist
# #----------------------------------------------
# - name: Install dependencies
# run: pip install coverage

# - name: download coverage files
# uses: actions/download-artifact@v3
# with:
# name: coverage
# path: coverage

# - name: convert coverage to xml
# run: |
# coverage combine --data-file=coverage/.coverage
# coverage xml -i --data-file=coverage/.coverage
# ls
# ls coverage

# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v3
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# # directory: ./coverage
# # env_vars: OS,PYTHON
# fail_ci_if_error: false
# # files: ./coverage/coverage.xml
# # flags: unittests
# # name: codecov-umbrella
# verbose: true

#----------------------------------------------
# Run tests and upload coverage
#----------------------------------------------
- name: Run tests for coverage
run: make test-w-coverage

- name: copy coverage
run: |
mkdir coverage
cp -v .coverage coverage/.coverage.${{ matrix.os }}-py${{ matrix.python-version }}
- name: store coverage files
uses: actions/upload-artifact@v4
with:
name: coverage
path: coverage


upload-coverage:
name: Upload test coverage to CodeCov
needs: [coverage]
runs-on: ubuntu-latest
permissions:
statuses: write
steps:
#----------------------------------------------
# check-out repo and set-up python
#----------------------------------------------
- name: Check out repository
uses: actions/checkout@v4
- name: Set up python ${{ env.MINIMUM_PYTHON_VERSION }}
id: setup-python
uses: actions/setup-python@v5
with:
python-version: ${{ env.MINIMUM_PYTHON_VERSION }}

#----------------------------------------------
# install dependencies if cache does not exist
#----------------------------------------------
- name: Install dependencies
run: pip install coverage

- name: download coverage files
uses: actions/download-artifact@v4
with:
name: coverage
path: coverage

- name: convert coverage to xml
run: |
coverage combine --data-file=coverage/.coverage
coverage xml -i --data-file=coverage/.coverage
ls
ls coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
# directory: ./coverage
# env_vars: OS,PYTHON
fail_ci_if_error: false
# files: ./coverage/coverage.xml
# flags: unittests
# name: codecov-umbrella
verbose: true

# https://github.com/marketplace/actions/alls-green#why used for branch protection checks
check:
if: always()
needs: [lint]
needs: [lint, coverage]
runs-on: ubuntu-latest
permissions: {}
steps:
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ run-doc-tests:
${INVENV} python -m doctest -v karp_lex/value_objects/unique_id.py

# run all tests with coverage collection
run-all-tests-w-coverage:
test-w-coverage:
${INVENV} pytest -vv --cov=src/${PROJECT} --cov-report=xml tests

# check types
Expand Down
11 changes: 10 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ dependencies = [
]
license = "MIT"
readme = "README.md"
requires-python = ">= 3.8"
requires-python = ">= 3.9"
classifiers = [
"Development Status :: 4 - Beta",
# "Development Status :: 5 - Production/Stable",
Expand Down Expand Up @@ -64,3 +64,12 @@ allow-direct-references = true

[tool.black]
target-version = ["py38", "py39", "py310", "py311", "py312"]

[tool.hatch.envs.test]
dependencies = ["pytest", "pytest-cov"]

# [tool.hatch.envs.test.scripts]
# run = "pytest tests"

[[tool.hatch.envs.test.matrix]]
python = ["3.8", "3.9", "3.10", "3.11", "3.12"]

0 comments on commit 5f83a06

Please sign in to comment.