Skip to content

chore: pin macos version #10

chore: pin macos version

chore: pin macos version #10

Workflow file for this run

# CI to release the project for Linux, Windows, and MacOS
name: Release CI
on:
push:
tags:
- v*
jobs:
macos:
runs-on: macos-12
strategy:
matrix:
python-version: [ "3.11" ]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-apple-darwin
- name: Build wheels - x86_64
uses: PyO3/maturin-action@v1
with:
target: x86_64
args: -i python --release --out dist
- name: Install build wheel - x86_64
run: |
pip install --force-reinstall dist/rustberry*.whl
cd ~ && python -c 'import rustberry'
- name: Build wheels - universal2-apple-darwin
uses: PyO3/maturin-action@v1
with:
args: -i python --release --target universal2-apple-darwin --out dist
- name: Install build wheel - universal2-apple-darwin
run: |
pip install --force-reinstall dist/rustberry*_universal2*.whl
cd ~ && python -c 'import rustberry'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
windows:
runs-on: windows-latest
strategy:
matrix:
python-version: [ "3.11" ]
target: [ x64, x86 ]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.target }}
- uses: dtolnay/rust-toolchain@stable
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: -i python --release --out dist
- name: Install build wheel
shell: bash
run: |
pip install --force-reinstall dist/rustberry*.whl
cd ~ && python -c 'import rustberry'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
linux:
runs-on: ubuntu-latest
strategy:
matrix:
# "3.7", "3.8", "3.9", "3.10", "3.11", "3.12.0-beta.3"
python-version: [
{ version: "3.11", maturinV: "3.11" },
{ version: "3.12.0-beta.3", maturinV: "3.12" } ]
target: [ x86_64, i686 ]
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version.version }}
- name: Build Wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
manylinux: auto
args: -i python${{ matrix.python-version.maturinV }} --release --out dist
- name: Install build wheel
if: matrix.target == 'x86_64'
run: |
pip install --force-reinstall dist/rustberry*.whl
cd ~ && python -c 'import rustberry'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
linux-cross:
runs-on: ubuntu-latest
strategy:
matrix:
python:
[
{ version: "3.11", abi: "cp311-cp311" },
]
target: [ aarch64 ] # , armv7, s390x, ppc64le ]
steps:
- uses: actions/checkout@v3
- name: Build Wheels
uses: PyO3/maturin-action@v1
env:
PYO3_CROSS_LIB_DIR: /opt/python/${{ matrix.python.abi }}/lib
with:
target: ${{ matrix.target }}
manylinux: auto
args: -i python${{matrix.python.version}} --release --out dist
- uses: uraimo/[email protected]
name: Install build wheel
with:
arch: ${{ matrix.target }}
distro: ubuntu20.04
githubToken: ${{ github.token }}
# Mount the dist directory as /artifacts in the container
dockerRunArgs: |
--volume "${PWD}/dist:/artifacts"
install: |
apt update -y
apt install -y gcc musl-dev python3-dev # this is needed for psutil
apt install -y --no-install-recommends software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt update -y
PYTHON=python${{ matrix.python.version }}
apt install -y $PYTHON $PYTHON-distutils $PYTHON-venv
run: |
ls -lrth /artifacts
PYTHON=python${{ matrix.python.version }}
$PYTHON --version
$PYTHON -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install --force-reinstall dist/rustberry*.whl
cd ~ && python -c 'import rustberry'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
release:
name: Release
runs-on: ubuntu-latest
needs: [ macos, windows, linux, linux-cross ]
environment:
name: pypi
url: https://pypi.org/p/rustberry
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
path: dist/
- name: output ls
run: |
ls -lrth
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1