taxonomy 0.10.5

Routines for loading, saving, and manipulating taxonomic trees
Documentation
# This file is autogenerated by maturin v1.8.2
# To update, run
#
#    maturin generate-ci github
#
name: build wheels

on:
  push:
    branches:
      - main
      - master
    tags:
      - "*"
  pull_request:
  workflow_dispatch:
  release:
    types: [published]

jobs:
  linux:
    runs-on: ${{ matrix.platform.runner }}
    strategy:
      matrix:
        platform:
          - runner: ubuntu-22.04
            target: x86_64
        python-version:
          - "3.11"
          - "3.12"
          - "3.13"
          - "3.14"
    steps:
      - uses: actions/checkout@v6
      - name: Build wheels
        uses: PyO3/maturin-action@v1
        with:
          target: ${{ matrix.platform.target }}
          args: --features python --release --out dist --interpreter python${{ matrix.python-version }}
          sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
          manylinux: auto
      - name: Upload wheels
        uses: actions/upload-artifact@v4
        with:
          name: wheels-linux-${{ matrix.platform.target }}-${{ matrix.python-version }}
          path: dist

  macos:
    runs-on: ${{ matrix.platform.runner }}
    strategy:
      matrix:
        platform:
          - runner: macos-15-intel
            target: x86_64
          - runner: macos-15
            target: aarch64
        python-version:
          - "3.11"
          - "3.12"
          - "3.13"
          - "3.14"
    steps:
      - uses: actions/checkout@v6
      - name: Build wheels
        uses: PyO3/maturin-action@v1
        with:
          target: ${{ matrix.platform.target }}
          args: --features python --release --out dist --interpreter python${{ matrix.python-version }}
          sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
          manylinux: auto
      - name: Upload wheels
        uses: actions/upload-artifact@v4
        with:
          name: wheels-macos-${{ matrix.platform.target }}-${{ matrix.python-version }}
          path: dist

  sdist:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Build sdist
        uses: PyO3/maturin-action@v1
        with:
          command: sdist
          args: --out dist
      - name: Upload sdist
        uses: actions/upload-artifact@v4
        with:
          name: wheels-sdist
          path: dist

  upload-release:
    name: Upload release artifacts to GitHub
    needs: [linux, macos, sdist]
    runs-on: ubuntu-latest
    if: github.event.release.tag_name
    steps:
      - name: Download wheel artifacts
        uses: actions/download-artifact@v4

      - name: List downloaded wheels
        run: ls -l wheels-*/*

      - name: Upload Wheels to Release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: wheels-*/**
          tag: ${{ github.event.release.tag_name }}
          file_glob: true

  release:
    name: Release to PyPI
    runs-on: ubuntu-latest
    if: github.event.release.tag_name
    needs: [linux, 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-*/**.whl wheels-*/**.tar.gz