test coverage improvement #46
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python | |
name: CI | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
branches: [ "master" ] | |
jobs: | |
build: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.10", "3.11", "3.12"] | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install flake8 pytest coverage coverage-badge setuptools | |
python -m pip install -e . | |
if (Test-Path requirements.dev.txt){ python -m pip install -r requirements.dev.txt} | |
- name: Lint with flake8 | |
run: | | |
# Stop the build if there are Python syntax errors or undefined names | |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
# Exit-zero treats all errors as warnings (you may want to adjust this) | |
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics | |
- name: Run tests with pytest and coverage information | |
run: | | |
coverage run -m pytest . | |
- name: Generate and commit coverage report | |
id: coverage-report | |
if: matrix.python-version == '3.12' # Execute only if Python version is 3.12 | |
run: | | |
$coverage_output= coverage report -m | |
coverage-badge -o test_coverage.svg -f | |
# Configure Git with the author information | |
git config --global user.email "[email protected]" | |
git config --global user.name "cole-st-john" | |
# Add the test_coverage.svg file to the repository | |
git add test_coverage.svg | |
# Commit the file with a message that includes the coverage output | |
git commit -m "Updated test coverage badge\n\nTest Coverage Results:\n\n${coverage_output}" | |
# Push the changes to the correct branch | |
git push origin master | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |