Skip to content

pyo3 bindings for uap-python #49

pyo3 bindings for uap-python

pyo3 bindings for uap-python #49

Workflow file for this run

# This file is autogenerated by maturin v1.7.4
# To update, run
#
# maturin generate-ci --zig github
#
name: Wheels and Tests
on:
push:
branches: [ main ]
tags: [ "*" ]
pull_request:
workflow_dispatch:
permissions:
contents: read
env:
BASE: --out dist -m ua-parser-py/Cargo.toml
COMMON: --release --out dist -m ua-parser-py/Cargo.toml -i python
jobs:
linux:
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.x"
- "pypy-3.10"
- "graalpy-24"
arch:
- x86_64
#- x86
- aarch64
#- armv7
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.arch }}
args: ${{ env.COMMON }} --zig
sccache: 'true'
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.arch }}-${{ matrix.python-version }}
path: dist/*
musllinux:
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.x"
- "pypy-3.10"
- "graalpy-24"
arch:
- x86_64
# - x86
- aarch64
#- armv7
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
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.arch }}-${{ matrix.python-version }}
path: dist/*
windows:
runs-on: windows-latest
strategy:
matrix:
python-version:
- "3.x"
- "pypy-3.10"
# if enabled, fails with "GraalPy version 24 with arch x64
# not found" despite graal having windows artefacts
#- "graalpy-24"
arch:
- x86_64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.arch }}
args: ${{ env.COMMON }}
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.arch }}-${{ matrix.python-version }}
path: dist
macos:
runs-on: macos-latest
strategy:
matrix:
python-version:
- "3.x"
- "pypy-3.10"
- "graalpy-24"
arch:
- x86_64
- aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.arch }}
args: ${{ env.COMMON }}
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.arch }}-${{ matrix.python-version }}
path: dist
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: ${{ env.BASE }}
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: dist
release:
name: Release
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
needs: [linux, musllinux, windows, macos, sdist]
permissions:
# Use to sign the release artifacts
id-token: write
# Used to upload release artifacts
contents: write
# Used to generate artifact attestation
attestations: write
steps:
- uses: actions/download-artifact@v4
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-path: 'wheels-*/*'
- name: Publish to PyPI
if: "startsWith(github.ref, 'refs/tags/')"
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
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"
platform:
- linux
- musllinux
- windows
- macos
exclude:
- platform: windows
python-version: graalpy-24
include:
# would probably need to run qemu inside the thing to full
# test the archs...
- arch: x86_64
- platform: macos
arch: aarch64
- wheel: "3.x"
- python-version: "pypy-3.10"
wheel: "pypy-3.10"
- python-version: "graalpy-24"
wheel: "graalpy-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
if: matrix.platform != "windows"

Check failure on line 246 in .github/workflows/pyo3-wheels.yml

View workflow run for this annotation

GitHub Actions / Wheels and Tests

Invalid workflow file

The workflow is not valid. .github/workflows/pyo3-wheels.yml (Line: 246, Col: 13): Unexpected symbol: '"windows"'. Located at position 20 within expression: matrix.platform != "windows" .github/workflows/pyo3-wheels.yml (Line: 261, Col: 13): Unexpected symbol: '"windows"'. Located at position 20 within expression: matrix.platform == "windows"
run: |
python --version
ls dist
echo "${{ toJSON(matrix) }}"
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 :all: pyyaml > /dev/null 2>&1; then
sudo apt install libyaml-dev
fi
python -mpip install pytest pyyaml
- name: Install test dependencies (windows version)
if: matrix.platform == "windows"
run: |
python -mpip install --upgrade pip
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