Skip to content

Initial Commit

Initial Commit #16

# This file was initially autogenerated by maturin v1.5.0
name: Build and Test
on:
push:
branches: [master]
pull_request:
types: [opened, synchronize, reopened]
paths-ignore:
- "*.md"
- "*.example"
- ".gitignore"
permissions:
contents: read
jobs:
linux:
runs-on: ubuntu-latest
strategy:
matrix:
target: [x86_64, x86, aarch64, armv7, s390x, ppc64le]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
env:
PKG_CONFIG_PATH: "/usr/share/miniconda/lib/pkgconfig/"
OPENSSL_NO_VENDOR: 1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
# sccache: 'true'
manylinux: auto
before-script-linux: |
# If we're running on rhel centos, install needed packages. thx s3rius!
if command -v yum &> /dev/null; then
yum update -y && yum install -y perl-core openssl openssl-devel pkgconfig
# if we're on aarch64, install libatomic
if [[ ${{ matrix.target }} == "aarch64" ]]; then
yum install -y libatomic
fi
else
# If we're running on debian-based system.
apt update -y && apt-get install -y libssl-dev openssl pkg-config
fi
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.target }}
path: dist
# - name: Setup Docker
# run: |
# sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# sudo apt-get install docker-ce
- name: Install and Test
if: ${{ startsWith(matrix.target, 'x86_64') }}
shell: bash
run: |
set -e
pip install .[dev] --find-links dist --force-reinstall
pytest -v tests/
# - name: Install and Test
# if: ${{ !startsWith(matrix.target, 'x86') && matrix.target != 'ppc64' }}
# uses: uraimo/[email protected]
# with:
# arch: ${{ matrix.target }}
# distro: ubuntu22.04
# githubToken: ${{ github.token }}
# install: |
# apt-get update
# apt-get install -y --no-install-recommends python3 python3-pip
# pip3 install -U pip pytest
# run: |
# set -e
# pip3 install .[dev] --find-links dist --force-reinstall
# pip3 install pytest docker
# pytest -v tests/
windows:
runs-on: windows-latest
strategy:
matrix:
target: [x64, x86]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: ${{ matrix.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.target }}
path: dist
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name: Install and Test
# if: ${{ !startsWith(matrix.target, 'aarch64') }}
# shell: bash
# run: |
# set -e
# pip install .[dev] --find-links dist --force-reinstall
# pip install pytest docker
# pytest -v tests/
macos:
runs-on: macos-latest
strategy:
matrix:
target: [x86_64, aarch64]
env:
OPENSSL_NO_VENDOR: 1
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Set OPENSSL_DIR
run: echo "OPENSSL_DIR=$(brew --prefix openssl@3)" >> $GITHUB_ENV
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.target }}
path: dist
# - name: Install and Test
# if: ${{ !startsWith(matrix.target, 'aarch64') }}
# shell: bash
# run: |
# set -e
# pip install .[dev] --find-links dist --force-reinstall
# pip install pytest docker pexpect
# pytest -v tests/
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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