diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml new file mode 100644 index 0000000..8a4934a --- /dev/null +++ b/.github/workflows/python-ci.yml @@ -0,0 +1,59 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python + +name: Python CI + +on: + push: + branches: + - alltalkbeta + pull_request: + branches: + - alltalkbeta + +permissions: + contents: read + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python 3.11.9 + uses: actions/setup-python@v3 + if: ${{ hashFiles('./test') != '' }} + with: + python-version: "3.11.9" + - name: Install dependencies + if: ${{ hashFiles('./test') != '' }} + run: | + python -m pip install --upgrade pip + if [ -f system/requirements/requirements_unit_test.txt ]; then + pip install -r system/requirements/requirements_unit_test.txt; + fi + - name: Test with pytest + if: ${{ hashFiles('./test') != '' }} + run: | + pytest test --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html + - name: Surface failing tests + if: always() + uses: pmeier/pytest-results-action@v0.6.0 + with: + # A list of JUnit XML files, directories containing the former, and wildcard + # patterns to process. + # See @actions/glob for supported patterns. + path: junit/test-results.xml + + # (Optional) Add a summary of the results at the top of the report + summary: true + + # (Optional) Select which results should be included in the report. + # Follows the same syntax as `pytest -r` + display-options: fEX + + # (Optional) Fail the workflow if no JUnit XML was found. + fail-on-empty: false + + # (Optional) Title of the test results section in the workflow summary + title: Test results