Skip to content

Import extraction with Rust #17

Import extraction with Rust

Import extraction with Rust #17

Workflow file for this run

name: Release
# //TODO: Change to on 'tag'
on:
pull_request:
types: [opened, synchronize, reopened]
push:
branches: [main]
jobs:
set-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# //TODO: Change to fetch version from tag.
- name: Update project version
run: |
PROJECT_VERSION="0.0.13a5"
sed -i "s/^version = \".*\"/version = \"$PROJECT_VERSION\"/" pyproject.toml
- name: Upload updated pyproject.toml
uses: actions/upload-artifact@v4
with:
name: pyproject-toml
path: pyproject.toml
linux:
runs-on: ubuntu-latest
needs: [set-version]
strategy:
matrix:
target: [x86_64, x86, aarch64]
steps:
- name: Check out
uses: actions/checkout@v4
- name: Download updated pyproject.toml
uses: actions/download-artifact@v4
with:
name: pyproject-toml
- uses: actions/setup-python@v5
with:
python-version: '3.11'
architecture: 'x64'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
manylinux: auto
rust-toolchain: 1.75.0
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.target }}
path: dist
windows:
runs-on: windows-latest
needs: [set-version]
strategy:
matrix:
target: [x64, x86]
steps:
- name: Check out
uses: actions/checkout@v4
- name: Download updated pyproject.toml
uses: actions/download-artifact@v4
with:
name: pyproject-toml
- uses: actions/setup-python@v5
with:
python-version: '3.11'
architecture: ${{ matrix.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
rust-toolchain: 1.75.0
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.target }}
path: dist
macos:
runs-on: macos-latest
needs: [set-version]
strategy:
matrix:
target: [x86_64, aarch64]
steps:
- name: Check out
uses: actions/checkout@v4
- name: Download updated pyproject.toml
uses: actions/download-artifact@v4
with:
name: pyproject-toml
- uses: actions/setup-python@v5
with:
python-version: '3.11'
architecture: ${{ matrix.target == 'aarch64' && 'arm64' || 'x64' }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
rust-toolchain: 1.75.0
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.target }}
path: dist
sdist:
runs-on: ubuntu-latest
needs: [set-version]
steps:
- uses: actions/checkout@v4
- name: Download updated pyproject.toml
uses: actions/download-artifact@v4
with:
name: pyproject-toml
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
rust-toolchain: 1.75.0
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: dist
# //TODO: Remove the MATURIN_REPOSITORY_URL, change TEST_PYPI_TOKEN to PYPI_TOKEN.
release:
name: Release
runs-on: ubuntu-latest
needs: [linux, windows, macos, sdist]
steps:
- uses: actions/download-artifact@v4
- name: Publish to Test PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.TEST_PYPI_TOKEN }}
MATURIN_REPOSITORY_URL: https://test.pypi.org/legacy/
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*