remove windows ci #157
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: Test Package | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
workflow_dispatch: | |
env: | |
PIP_DISABLE_PIP_VERSION_CHECK: "1" | |
PIP_NO_PYTHON_VERSION_WARNING: "1" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: {} | |
jobs: | |
build-package: | |
name: Build package | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
persist-credentials: false | |
- uses: hynek/build-and-inspect-python-package@v2 | |
id: buildinspect | |
outputs: | |
# Used to define the matrix for tests below. The value is based on | |
# packaging metadata (trove classifiers). | |
python-versions: ${{ steps.buildinspect.outputs.supported_python_classifiers_json_array }} | |
tests: | |
name: Test on ${{ matrix.os }} using Python ${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }}-latest | |
needs: build-package | |
strategy: | |
fail-fast: false | |
matrix: | |
# TODO: add tests for 'Windows' and 'macOS'. Need to install Tesseract. | |
os: | |
- ubuntu | |
# - windows-latest | |
# Created by the build-and-inspect-python-package action above. | |
python-version: ${{ fromJson(needs.build-package.outputs.python-versions) }} | |
env: | |
PYTHON: ${{ matrix.python-version }} | |
steps: | |
- name: Download pre-built packages | |
uses: actions/download-artifact@v4 | |
with: | |
name: Packages | |
path: dist | |
- name: Extract pre-built package | |
run: | | |
tar xf dist/*.tar.gz --strip-components=1 | |
rm -rf src | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: pip | |
allow-prereleases: true | |
- name: Install Ubuntu dependencies | |
if: matrix.os == 'ubuntu-latest' | |
run: sudo apt-get install tesseract-ocr | |
- name: Install Windows dependencies | |
if: matrix.os == 'windows-latest' | |
run: choco install tesseract | |
- name: Run tests | |
run: pipx run tox run --installpkg dist/*.whl -f py${PYTHON//./}-tests | |
- name: Upload coverage data | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-data-${{ matrix.os }}-${{ matrix.python-version }} | |
path: .coverage.* | |
include-hidden-files: true | |
if-no-files-found: ignore | |
- name: Run mypy typing check | |
run: pipx run tox run --installpkg dist/*.whl -f py${PYTHON//./}-mypy | |
coverage: | |
name: Check test coverage | |
runs-on: ubuntu-latest | |
needs: tests | |
if: always() | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Set up Python 3.13 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.13 | |
- name: Download coverage data | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: coverage-data-* | |
merge-multiple: true | |
- name: Combine coverage and fail if under expected percentage | |
run: | | |
pip install coverage | |
coverage combine | |
coverage html --skip-covered --skip-empty | |
# Report and write to summary. | |
coverage report --format=markdown >> $GITHUB_STEP_SUMMARY | |
# Report again and fail if under expected percentage. | |
coverage report --fail-under=65 | |
- name: Upload HTML report if check failed. | |
uses: actions/upload-artifact@v4 | |
with: | |
name: html-report | |
path: htmlcov | |
if: ${{ failure() }} |