Skip to content

testing mlock

testing mlock #161

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
# concurrency:
# group: ${{ github.workflow }}-${{ github.ref }}
# cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0 # TODO: remove this when we cache the builds
jobs:
check_version:
name: Check version
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.check_version.outputs.changed }}
version: ${{ steps.check_version.outputs.version }}
prev_version: ${{ steps.check_version.outputs.prev_version }}
steps:
- uses: actions/checkout@v4
- id: check_version
uses: radumarias/action-check-version-changed-rust@v1
test_rust:
runs-on: ${{ matrix.runner }}
strategy:
matrix:
runner: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Setup Rust
run: rustup update
- name: Fmt check
run: cargo fmt --check --all
- name: Check
run: cargo check --all
- name: clippy
run: cargo clippy --all --all-features
- name: Tests
run: cargo test --all --all-features --release -- nocapture
- name: Bench
run: cargo bench --all --all-features
test_py_linux:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12"]
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m venv .env
source .env/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
maturin develop --release
- name: Run tests
run: |
source .env/bin/activate
./test.sh
test_py_macos:
runs-on: macos-latest
strategy:
matrix:
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m venv .env
source .env/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
maturin develop --release
- name: Run tests
run: |
source .env/bin/activate
./test.sh
test_py_windows:
runs-on: windows-latest
strategy:
matrix:
python-version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12"]
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m venv .env
.env\Scripts\activate
python -m pip install --upgrade pip
pip install -r requirements.txt
maturin develop --release
- name: Run tests
run: |
.env\Scripts\activate
cmd /c test.bat
build_linux:
needs: [test_rust, test_py_linux, test_py_macos, test_py_windows]
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-latest
target: x86_64
- runner: ubuntu-latest
target: x86
- runner: ubuntu-latest
target: aarch64
- runner: ubuntu-latest
target: armv7
- runner: ubuntu-latest
target: s390x
- runner: ubuntu-latest
target: ppc64le
steps:
- uses: actions/checkout@v4
- name: Setup Rust
run: rustup update
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist
build_windows:
needs: [test_rust, test_py_linux, test_py_macos, test_py_windows]
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: windows-latest
target: x64
- runner: windows-latest
target: x86
steps:
- uses: actions/checkout@v4
- name: Setup Rust
run: rustup update
- uses: actions/setup-python@v5
with:
python-version: '3.12'
architecture: ${{ matrix.platform.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.platform.target }}
path: dist
build_macos:
needs: [test_rust, test_py_linux, test_py_macos, test_py_windows]
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: macos-latest
target: x86_64
- runner: macos-14
target: aarch64
steps:
- uses: actions/checkout@v4
- name: Setup Rust
run: rustup update
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}
path: dist
build_sdist:
needs: [test_rust, test_py_linux, test_py_macos, test_py_windows]
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
release:
name: Create release and publish to PyPI
if: needs.check_version.outputs.changed == 'true' && github.event_name == 'push'
needs: [check_version, build_linux, build_windows, build_macos, build_sdist]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Setup Rust
run: rustup update
- uses: ncipollo/release-action@v1
name: Create release
with:
name: Release v${{ needs.check_version.outputs.version }}
tag: v${{ needs.check_version.outputs.version }}
generateReleaseNotes: true
- uses: actions/download-artifact@v4
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*