Skip to content

Run tests and build wheels. #68

Run tests and build wheels.

Run tests and build wheels. #68

Workflow file for this run

name: Run tests and build wheels.
on: [ workflow_dispatch ]
jobs:
linux:
name: Linux
strategy:
matrix:
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install dev packages
run: |
python -m pip install wheel
python -m pip install .[dev]
- name: Run tests
env:
DONT_SAVE_RESULT: 1
run: |
pytest --benchmark-skip -vv
- name: Build sdist
if: ${{ matrix.python-version == '3.12' }}
uses: PyO3/maturin-action@v1
with:
maturin-version: latest
command: sdist
before-script-linux: rm -rf ".github" "tests" ".gitignore"
args: --out dist
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
maturin-version: latest
target: x86_64
manylinux: auto
args: --release --strip --out dist -i ${{ matrix.python-version }}
- name: Install wheel
run: |
cd dist
python -m pip install cykooz.resizer --no-index --find-links ./ --force-reinstall
python -c "import cykooz.resizer"
cd ..
- name: Upload sdist and wheels
uses: actions/upload-artifact@v4
with:
name: wheels_lin-${{ matrix.python-version }}
path: dist
windows:
name: Windows
runs-on: windows-latest
strategy:
matrix:
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: "x64"
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: "x86_64-pc-windows-msvc"
- name: Install dev packages
run: |
python -m pip install wheel
python -m pip install .[dev]
- name: Run tests
env:
DONT_SAVE_RESULT: 1
run: |
pytest --benchmark-skip -vv
- name: Build wheel
uses: PyO3/maturin-action@v1
with:
target: "x86_64-pc-windows-msvc"
args: --release --strip --out dist -i python
- name: Install built wheel
run: |
cd dist
python -m pip install cykooz.resizer --no-index --find-links . --force-reinstall
python -c "import cykooz.resizer"
cd ..
- name: Upload wheel
uses: actions/upload-artifact@v4
with:
name: wheels_win-${{ matrix.python-version }}
path: dist
macos:
name: MacOS
runs-on: macos-latest
strategy:
matrix:
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Rust toolchain x86_64
uses: dtolnay/rust-toolchain@stable
with:
target: "x86_64-apple-darwin"
- name: Install Rust toolchain aarch64
uses: dtolnay/rust-toolchain@stable
with:
target: "aarch64-apple-darwin"
- name: Install dev packages
run: |
python -m pip install wheel
python -m pip install .[dev]
- name: Run tests
env:
DONT_SAVE_RESULT: 1
run: |
pytest --benchmark-skip -vv
- name: Build wheels - x86_64
uses: PyO3/maturin-action@v1
with:
target: "x86_64-apple-darwin"
args: --release --strip --out dist -i python
- name: Build wheels - aarch64
uses: PyO3/maturin-action@v1
with:
target: "aarch64-apple-darwin"
args: --release --strip --out dist -i python
- name: Install built wheel
run: |
cd dist
python -m pip install cykooz.resizer --find-links . --force-reinstall
python -c "import cykooz.resizer"
cd ..
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels_mac-${{ matrix.python-version }}
path: dist
wheels:
runs-on: ubuntu-latest
needs: [ linux, windows, macos ]
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v4
with:
name: wheels
delete-merged: true