Skip to content

Merge pull request #262 from gurock/fix/e2e-test-script-add-run #208

Merge pull request #262 from gurock/fix/e2e-test-script-add-run

Merge pull request #262 from gurock/fix/e2e-test-script-add-run #208

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.8", "3.9", "3.10", "3.11", "3.12"]
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- 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
pip install -r tests/requirements.txt
- name: Test with pytest (Linux)
if: runner.os == 'Linux'
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
- name: Test with pytest (Windows)
if: runner.os == 'Windows'
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 )
{
echo "::error::Code coverage is less than 80%" && exit_code=1
}
if ( $pytest_exit_code -gt 0 )
{
echo "::error::Unit tests failed" && exit_code=1
}
exit $exit_code
- name: Install the TR CLI on Linux (just to make sure it installs)
if: runner.os == 'Linux'
run: |
pip install build
python -m build
pip install $(ls dist/*.tar.gz| head -n 1)