Skip to content

Commit

Permalink
test all
Browse files Browse the repository at this point in the history
  • Loading branch information
masklinn committed Oct 5, 2024
1 parent 6664442 commit b2c3368
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 81 deletions.
130 changes: 101 additions & 29 deletions .github/workflows/pyo3-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,12 @@
#
# maturin generate-ci --zig github
#
name: build wheels
name: Wheels and Tests

on:
push:
branches:
- main
- master
tags:
- '*'
branches: [ main ]
tags: [ "*" ]
pull_request:
workflow_dispatch:

Expand All @@ -31,11 +28,11 @@ jobs:
- "3.x"
- "pypy-3.10"
- "graalpy-24"
platform:
- target: x86_64
#- target: x86
- target: aarch64
#- target: armv7
arch:
- x86_64
#- x86
- aarch64
#- armv7
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand All @@ -44,14 +41,14 @@ jobs:
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
target: ${{ matrix.arch }}
args: ${{ env.COMMON }} --zig
sccache: 'true'
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}-${{ matrix.python-version }}
name: wheels-linux-${{ matrix.arch }}-${{ matrix.python-version }}
path: dist/*

musllinux:
Expand All @@ -62,11 +59,11 @@ jobs:
- "3.x"
- "pypy-3.10"
- "graalpy-24"
platform:
- target: x86_64
# - target: x86
- target: aarch64
#- target: armv7
arch:
- x86_64
# - x86
- aarch64
#- armv7
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand All @@ -75,14 +72,14 @@ jobs:
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
target: ${{ matrix.arch }}
args: ${{ env.BASE }} --release
sccache: 'true'
manylinux: musllinux_1_2
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-musllinux-${{ matrix.platform.target }}-${{ matrix.python-version }}
name: wheels-musllinux-${{ matrix.arch }}-${{ matrix.python-version }}
path: dist/*

windows:
Expand All @@ -95,8 +92,8 @@ jobs:
# if enabled, fails with "GraalPy version 24 with arch x64
# not found" despite graal having windows artefacts
#- "graalpy-24"
platform:
- target: x64
arch:
- x86_64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand All @@ -105,13 +102,13 @@ jobs:
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
target: ${{ matrix.arch }}
args: ${{ env.COMMON }}
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.platform.target }}-${{ matrix.python-version }}
name: wheels-windows-${{ matrix.arch }}-${{ matrix.python-version }}
path: dist

macos:
Expand All @@ -122,9 +119,9 @@ jobs:
- "3.x"
- "pypy-3.10"
- "graalpy-24"
platform:
- target: x86_64
- target: aarch64
arch:
- x86_64
- aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand All @@ -133,13 +130,13 @@ jobs:
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
target: ${{ matrix.arch }}
args: ${{ env.COMMON }}
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}-${{ matrix.python-version }}
name: wheels-macos-${{ matrix.arch }}-${{ matrix.python-version }}
path: dist

sdist:
Expand Down Expand Up @@ -183,3 +180,78 @@ jobs:
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*

tests:
# needs can't run off of test matrix, so depend on all wheel jobs
needs: [linux, musllinux, windows, macos]

strategy:
fail-fast: false
matrix:
python-version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "pypy-3.10"
- "graalpy-24"
arch:
- x86_64
- aarch64
platform:
- linux
- musllinux
- windows
- macos

exclude:
- platform: windows
python-version: graalpy-24
- platform: windows
arch: aarch64

include:
- wheel: "3.x"
- python-version: "pypy-3.10"
wheel: "pypy-3.10"
- python-version: "graal-24"
wheel: "graal-24"

- runs: ubuntu-latest
- platform: windows
runs: windows-latest
- platform: macos
runs: macos-latest

runs-on: ${{ matrix.runs }}

steps:
- name: Checkout working copy
uses: actions/checkout@v4
with:
submodules: true
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: retrieve wheel
uses: actions/download-artifact@v4
with:
name: wheels-${{ matrix.platform }}-${{ matrix.arch }}-${{ matrix.wheel }}
path: dist
- name: Install test dependencies
run: |
python -mpip install --upgrade pip
# if binary wheels are not available for the current
# package install libyaml-dev so we can install pyyaml
# from source
if ! pip download --only-binary pyyaml > /dev/null 2>&1; then
sudo apt install libyaml-dev
fi
python -mpip install pytest pyyaml
- name: install package
run: pip install --find-links dist ua_parser_rs
- name: run tests
run: pytest -v -Werror -ra ua-parser-py
52 changes: 0 additions & 52 deletions .github/workflows/pytests.yaml

This file was deleted.

0 comments on commit b2c3368

Please sign in to comment.