Add support for Linux Arm64 and drop support for Python 3.9 #308
Workflow file for this run
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 | |
on: | |
pull_request: | |
types: [opened, synchronize] | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
architecture: | |
- x64 | |
os: | |
- macos-13 | |
- ubuntu-24.04 | |
- windows-2022 | |
python: | |
- "3.12" | |
include: | |
- architecture: arm64 | |
os: macos-14 | |
python: "3.12" | |
- architecture: arm64 | |
os: ubuntu-24.04 | |
python: "3.12" | |
- architecture: x64 | |
os: ubuntu-24.04 | |
python: "3.11" | |
- architecture: x64 | |
os: ubuntu-24.04 | |
python: "3.10" | |
fail-fast: false | |
name: Test on ${{ matrix.os }}-${{ matrix.architecture }} with Python ${{ matrix.python }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/build-jdk | |
with: | |
os: ${{ matrix.os }} | |
python-version: ${{ matrix.python }} | |
- uses: ./.github/actions/create-python-wheel | |
with: | |
build-number: ${{ env.JDK4PY_BUILD_NUMBER }} | |
# No need to do that for each OS and Python version. | |
- if: ${{ matrix.architecture == 'x64' && matrix.os == 'ubuntu-24.04' && matrix.python == '3.12' }} | |
name: Check formatting | |
run: poetry run ruff format --check . | |
# No need to do that for each OS and Python version. | |
- if: ${{ matrix.architecture == 'x64' && matrix.os == 'ubuntu-24.04' && matrix.python == '3.12' }} | |
name: Lint | |
run: poetry run ruff check . | |
# No need to do that for each OS and Python version. | |
- if: ${{ matrix.architecture == 'x64' && matrix.os == 'ubuntu-24.04' && matrix.python == '3.12' }} | |
name: Typecheck | |
run: poetry run mypy --show-error-codes jdk4py scripts tests | |
- run: poetry run pytest | |
# The library's Python wheels are not tied to a specific version of Python so there is no need to upload the package for each Python version. | |
- if: ${{ matrix.python == '3.12' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
if-no-files-found: error | |
name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}.whl | |
path: dist/jdk4py-*.whl | |
conda-package: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
architecture: | |
- x64 | |
os: | |
- macos-13 | |
- ubuntu-24.04 | |
- windows-2022 | |
include: | |
- architecture: arm64 | |
os: macos-14 | |
- architecture: arm64 | |
os: ubuntu-24.04 | |
name: Test Conda packaging on ${{ matrix.os }}-${{ matrix.architecture }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/build-jdk | |
with: | |
os: ${{ matrix.os }} | |
# No need to test each Python version. | |
python-version: "3.12" | |
- uses: ./.github/actions/create-conda-package | |
with: | |
architecture: ${{ matrix.architecture }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
if-no-files-found: error | |
name: jdk4py-${{ matrix.os }}-${{ matrix.architecture }}-conda-packages | |
path: dist/${{ env.JDK4PY_CONDA_PLATFORM }}/jdk4py-*.tar.bz2 |