diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 0cae82b..9158fa8 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -31,8 +31,8 @@ jobs: - runner: ubuntu-latest target: aarch64 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: python-version: 3.14 - name: Build wheels @@ -45,7 +45,7 @@ jobs: sccache: 'true' manylinux: auto - name: Upload wheels - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wheels-linux-${{ matrix.platform.target }} path: dist @@ -63,7 +63,7 @@ jobs: pytest - name: pytest if: ${{ !startsWith(matrix.platform.target, 'x86') && matrix.platform.target != 'ppc64' }} - uses: uraimo/run-on-arch-action@v2 + uses: uraimo/run-on-arch-action@v3 env: PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1 with: @@ -91,8 +91,8 @@ jobs: - runner: ubuntu-latest target: aarch64 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: python-version: 3.14 - name: Build wheels @@ -105,13 +105,13 @@ jobs: sccache: 'true' manylinux: musllinux_1_2 - name: Upload wheels - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wheels-musllinux-${{ matrix.platform.target }} path: dist - name: pytest if: ${{ !startsWith(matrix.platform.target, 'x86') }} - uses: uraimo/run-on-arch-action@v2 + uses: uraimo/run-on-arch-action@v3 env: PYO3_USE_ABI3_FORWARD_COMPATIBILITY: 1 with: @@ -138,8 +138,8 @@ jobs: - runner: windows-latest target: x86 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: python-version: 3.14 architecture: ${{ matrix.platform.target }} @@ -152,7 +152,7 @@ jobs: args: --release --out dist --find-interpreter sccache: 'true' - name: Upload wheels - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wheels-windows-${{ matrix.platform.target }} path: dist @@ -175,8 +175,8 @@ jobs: - runner: macos-14 target: aarch64 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: python-version: 3.14 - name: Build wheels @@ -188,7 +188,7 @@ jobs: args: --release --out dist --find-interpreter sccache: 'true' - name: Upload wheels - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wheels-macos-${{ matrix.platform.target }} path: dist @@ -203,17 +203,55 @@ jobs: pip install pytest pytest + pytest: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} + - name: Install package and test dependencies + run: python -m pip install -e .[test] + - name: Run pytest + run: pytest + + coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: "3.12" + - name: Install package and test dependencies + run: python -m pip install -e .[test] + - name: Run coverage + run: pytest --cov=e57 --cov-report=term-missing --cov-report=xml --cov-report=html + - name: Generate markdown coverage report + run: python -m coverage report --format=markdown > coverage.md + - name: Upload coverage artifacts + uses: actions/upload-artifact@v7 + with: + name: coverage-reports + path: | + coverage.xml + coverage.md + htmlcov/ + sdist: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Build sdist uses: PyO3/maturin-action@v1 with: command: sdist args: --out dist - name: Upload sdist - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wheels-sdist path: dist @@ -231,9 +269,9 @@ jobs: # Used to generate artifact attestation attestations: write steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 - name: Generate artifact attestation - uses: actions/attest-build-provenance@v1 + uses: actions/attest-build-provenance@v4 with: subject-path: 'wheels-*/*' - name: Publish to PyPI diff --git a/pyproject.toml b/pyproject.toml index cb25851..5744eac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ classifiers = [ [project.optional-dependencies] test = [ 'pytest>=9,<10', + 'pytest-cov>=5,<7', ] [project.urls]