Bump sphinx from 8.1.3 to 8.2.0 #766
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
name: pytest linux | |
on: [push, pull_request] | |
env: | |
LD_LIBRARY_PATH: /opt/senzing/er/lib | |
PYTHONPATH: /home/runner/work/sz-sdk-python/sz-sdk-python/src | |
SENZING_TOOLS_DATABASE_URL: sqlite3://na:na@nowhere/tmp/sqlite/G2C.db | |
permissions: | |
contents: read | |
jobs: | |
pytest-linux: | |
name: "pytest OS: ${{ matrix.os }}; Python ${{ matrix.python-version }}" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
senzingsdk-version: [staging-v4] | |
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 venv ./venv | |
source ./venv/bin/activate | |
echo "PATH=${PATH}" >> "${GITHUB_ENV}" | |
python -m pip install --upgrade pip | |
python -m pip install --requirement requirements.txt | |
python -m pip install --requirement test-requirements.txt | |
python -m pip install psutil pytest pytest-cov pytest-schema | |
- if: matrix.python-version == '3.8' || matrix.python-version == '3.9' || matrix.python-version == '3.10' | |
name: Install python libraries for python 3.8, 3.9, and 3.10 | |
run: | | |
source ./venv/bin/activate | |
python -m pip install typing_extensions | |
- name: Install Senzing SDK | |
uses: senzing-factory/github-action-install-senzing-sdk@v2 | |
with: | |
senzingsdk-repository-package: ${{ secrets.SENZING_APT_BETA_STAGING_REPOSITORY_PACKAGE }} | |
senzingsdk-repository-path: ${{ secrets.SENZING_APT_BETA_STAGING_REPOSITORY_URL }} | |
- name: Copy /etc files | |
run: | | |
sudo mkdir -p /etc/opt/senzing | |
sudo cp testdata/senzing-license/g2.lic /etc/opt/senzing/g2.lic | |
- name: Copy test database files | |
run: | | |
mkdir /tmp/sqlite | |
cp testdata/sqlite/G2C.db /tmp/sqlite/G2C.db | |
- name: Run pytest on tests | |
run: | | |
source ./venv/bin/activate | |
pytest tests/ --verbose --capture=no --cov=src --cov-append | |
# Use pytest to check examples, there are no "test" classes/functions, pytest imports | |
# the .py files. If there is a Python error in the examples, an exit code of 1 | |
# is returned. If there are no Python errors but pytest didn't think it found any | |
# tests an exit code of 5 is returned, this is a pass but need to capture it and | |
# return 0 - https://docs.pytest.org/en/stable/reference/exit-codes.html | |
- name: Run pytest on examples | |
run: | | |
source ./venv/bin/activate | |
set +e | |
pytest \ | |
examples/misc/ \ | |
examples/docs/ \ | |
examples/extras/ \ | |
examples/szabstractfactory/ \ | |
examples/szconfig/ \ | |
examples/szconfigmanager/ \ | |
examples/szdiagnostic/ \ | |
examples/szengine/ \ | |
examples/szproduct/ \ | |
--capture=no \ | |
-o python_files=*.py \ | |
--verbose | |
pytest_exit_code="$?" | |
set -e | |
if [ "$pytest_exit_code" -eq 5 ]; then | |
echo -e "\nExit code from pytest was $pytest_exit_code, this is expected testing the examples if there were no Python errors\n" | |
exit 0 | |
else | |
exit "$pytest_exit_code" | |
fi | |
- name: Rename coverage file | |
env: | |
COVERAGE_FILE: "coverage.${{ matrix.python-version }}" | |
run: | | |
mv .coverage "$COVERAGE_FILE" | |
- name: Store coverage file | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-${{ matrix.python-version }} | |
path: coverage.${{ matrix.python-version }} | |
coverage: | |
name: Coverage | |
needs: pytest-linux | |
permissions: | |
pull-requests: write | |
contents: write | |
uses: senzing-factory/build-resources/.github/workflows/python-coverage-comment.yaml@v2 |