77 name : ${{ matrix.os }} - Python ${{ matrix.python-version }}
88 strategy :
99 matrix :
10- os : [macOS-latest, ubuntu-22.04 , windows-2019]
11- python-version : [3.9, "3.10", 3.11, 3.12]
10+ os : [macOS-latest, ubuntu-latest , windows-2019]
11+ python-version : ["3.10", 3.11, 3.12, 3.13 ]
1212 fail-fast : false
1313 runs-on : ${{ matrix.os }}
1414 steps :
15- - uses : actions/checkout@v1
15+ - uses : actions/checkout@v4
1616 with :
1717 submodules : true
1818 - name : Environment Variables
@@ -22,41 +22,43 @@ jobs:
2222 echo "CI_SHA=${{ github.sha }}" >> $GITHUB_ENV
2323 echo "COVERALLS_REPO_TOKEN=${{ secrets.COVERALLS_REPO_TOKEN }}" >> $GITHUB_ENV
2424 shell : bash
25- - name : Set up Python 3.9 for Pre-Commit
26- uses : actions/setup-python@v4
25+ - name : Set up Python 3.10 for Pre-Commit
26+ uses : actions/setup-python@v5
2727 with :
28- python-version : 3.9
28+ python-version : " 3.10 "
2929 - name : Set up Python ${{ matrix.python-version }}
30- uses : actions/setup-python@v4
30+ uses : actions/setup-python@v5
3131 with :
3232 python-version : ${{ matrix.python-version }}
33- - name : Install Poetry
34- env :
35- POETRY_VERSION : 1.4.0
33+ - name : Install Dependencies (macOS)
34+ if : matrix.os == 'macOS-latest'
3635 run : |
37- curl -sSL https://install.python-poetry.org | POETRY_HOME=$HOME/.poetry python3 -
38- echo "$HOME/.poetry/bin" >> $GITHUB_PATH
36+ brew install freeimage
37+ # TODO: Drop when https://github.com/imageio/imageio/issues/628 is addressed
38+ echo "IMAGEIO_FREEIMAGE_LIB=/opt/homebrew/Cellar/freeimage/3.18.0/lib/libfreeimage.3.18.0.dylib" >> $GITHUB_ENV
39+ - name : Install uv
40+ run : |
41+ pip install uv
3942 shell : bash
4043 - name : Install Package Dependencies
4144 run : |
42- poetry run python -m pip install --upgrade pip
43- poetry install
44- poetry run python -c "import imageio;imageio.plugins.freeimage.download()"
45+ uv sync --all-extras --no-dev
46+ uv run python -c "import imageio;imageio.plugins.freeimage.download()"
4547 shell : bash
4648 - name : Pre-Commit (All Files)
4749 run : |
48- poetry run pre-commit run --all-files
50+ uv run pre-commit run --all-files
4951 shell : bash
5052 - name : Test Optimised Python Execution
5153 run : |
52- poetry run python -OO -c "import $CI_PACKAGE"
54+ uv run python -OO -c "import $CI_PACKAGE"
5355 shell : bash
5456 - name : Test with Pytest
5557 run : |
56- poetry run python -W ignore -m pytest --doctest-modules --ignore=$CI_PACKAGE/examples --ignore=$CI_PACKAGE/scripts/inference.py --cov=$CI_PACKAGE $CI_PACKAGE
58+ uv run python -W ignore -m pytest --doctest-modules --ignore=$CI_PACKAGE/examples --cov=$CI_PACKAGE $CI_PACKAGE
5759 shell : bash
5860 - name : Upload Coverage to coveralls.io
59- if : matrix.os == 'macOS-latest' && matrix.python-version == '3.11 '
61+ if : matrix.os == 'macOS-latest' && matrix.python-version == '3.12 '
6062 run : |
61- if [ -z "$COVERALLS_REPO_TOKEN" ]; then echo \"COVERALLS_REPO_TOKEN\" secret is undefined!; else poetry run coveralls; fi
63+ if [ -z "$COVERALLS_REPO_TOKEN" ]; then echo \"COVERALLS_REPO_TOKEN\" secret is undefined!; else uv run coveralls; fi
6264 shell : bash
0 commit comments