Initial Commit #22
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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, 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 gcc perl-core openssl openssl-devel pkgconfig libatomic | |
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 | |