# This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions name: Test on: [push] jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - name: clean up run: | df -h sudo rm -rf /usr/share/dotnet sudo rm -rf /usr/local/lib/android sudo rm -rf /opt/ghc sudo rm -rf "/usr/local/share/boost" sudo rm -rf "$AGENT_TOOLSDIRECTORY" df -h - uses: actions/checkout@v4 - uses: actions/cache@v4 id: seg_model_cache with: path: models_eynollah key: ${{ runner.os }}-models - uses: actions/cache@v4 id: bin_model_cache with: path: default-2021-03-09 key: ${{ runner.os }}-modelbin - name: Download models if: steps.seg_model_cache.outputs.cache-hit != 'true' || steps.bin_model_cache.outputs.cache-hit != 'true' run: make models - 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 make install-dev EXTRAS=OCR,plotting make deps-test - name: Test with pytest run: make coverage PYTEST_ARGS="-vv --junitxml=pytest.xml" - name: Get coverage results run: | coverage report --format=markdown >> $GITHUB_STEP_SUMMARY coverage html coverage json coverage xml - name: Store coverage results uses: actions/upload-artifact@v4 with: name: coverage-report_${{ matrix.python-version }} path: | htmlcov pytest.xml coverage.xml coverage.json - name: Upload coverage results uses: codecov/codecov-action@v4 with: files: coverage.xml fail_ci_if_error: false - name: Test standalone CLI run: make smoke-test - name: Test OCR-D CLI run: make ocrd-test