name: Test on: push: branches: - master pull_request: branches: - master schedule: - cron: "00 16 07 * *" # = monthly # Allow manually running (from GitHub Web) workflow_dispatch: # Allow calling this workflow (e.g. from release workflow) workflow_call: jobs: test: strategy: fail-fast: false matrix: python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ] runs-on: 'ubuntu-latest' steps: - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Checkout uses: actions/checkout@v3 - name: Update pip run: python3 -m pip install -U pip - name: Avoid compiling OpenCV and NumPy on Python 3.6 run: | if python3 --version | grep -q "Python 3.6"; then pip install --prefer-binary -U opencv-python-headless numpy fi - name: Install requirements*.txt run: | for requirements_txt in requirements*.txt; do python3 -m pip install -r $requirements_txt; done - name: Test run: | cd src python3 -m pytest --junitxml=../junit.xml -o junit_family=legacy - name: Upload test results uses: actions/upload-artifact@v3 if: success() || failure() with: name: test-results-${{matrix.python-version}} path: junit.xml