Skip to content

Update python-app.yml to support build on Python 3.10, 3.11, and 3.12 #125

Update python-app.yml to support build on Python 3.10, 3.11, and 3.12

Update python-app.yml to support build on Python 3.10, 3.11, and 3.12 #125

Workflow file for this run

# This workflow will install Python dependencies and run tests with a single version of Python
# For more information see:
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Build App
on:
push:
branches:
- main
pull_request:
branches:
- '*'
permissions:
contents: read
jobs:
build:
strategy:
matrix:
python_version: ["3.10", "3.11", "3.12"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v3
with:
python-version: "${{ matrix.python_version }}"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r tests/requirements.txt
- name: Test with pytest
run: |
coverage run -m pytest \
-c ./tests/pytest.ini \
-W ignore::pytest.PytestCollectionWarning \
--md-report --md-report-output=report.md --md-report-color=never \
tests || pytest_exit_code=$?
echo "## :clipboard: Test Results" >> $GITHUB_STEP_SUMMARY
cat report.md >> $GITHUB_STEP_SUMMARY
echo "## :bar_chart: Code coverage" >> $GITHUB_STEP_SUMMARY
coverage report --format markdown >> $GITHUB_STEP_SUMMARY
if [[ "$(coverage report --format total)" -lt 80 ]]
then
echo "::error::Code coverage is less than 80%" && exit_code=1
fi
if [[ $pytest_exit_code -gt 0 ]]
then
echo "::error::Unit tests failed" && exit_code=1
fi
exit $exit_code