name: Python Tests on: push: branches: - master pull_request: branches: - master jobs: run: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python: ["3.10", "3.11", "3.12", "3.13"] defaults: run: shell: bash steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} - name: Run tests run: | python -m pip install -r requirements_ci.txt git clone https://github.com/progressivis/progressivis.git python -m pip install ./progressivis git submodule init git submodule update python -m pip install . coverage run -m pytest --durations=50 tests -vv - name: Coverage run: | coverage html - name: Upload coverage uses: actions/upload-artifact@v4 with: name: coverage-report-${{ matrix.python }} path: htmlcov - name: Pip freeze if: failure() run: | mkdir -p downloads_/${{ matrix.python }}/ python -m pip freeze > downloads_/${{ matrix.python }}/pip_freeze.txt - name: Upload frozen env if: failure() uses: actions/upload-artifact@v4 with: name: pip-freeze path: downloads_