66 lines
1.7 KiB
YAML
66 lines
1.7 KiB
YAML
name: PyTest
|
|
|
|
on: [push, pull_request, workflow_call]
|
|
|
|
jobs:
|
|
pytest:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.10", "3.12", "3.14"]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Restore cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: |
|
|
~/.cache/pip
|
|
~/.cache/pip-wheel
|
|
~/.cache/sccache
|
|
~/.cache/cargo-xwin
|
|
~/.cargo
|
|
~/.osxcross
|
|
key: cache-ubuntu-maturin-cross-compile
|
|
|
|
- name: Install Rust
|
|
run: |
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
|
if ! command -v rustc >/dev/null 2>&1; then
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
|
else
|
|
rustup update
|
|
fi
|
|
shell: bash
|
|
|
|
- name: Install sccache and maturin
|
|
run: |
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
|
python -m pip install --upgrade pip
|
|
pip install maturin ziglang
|
|
if ! command -v sccache >/dev/null 2>&1; then
|
|
cargo install sccache || pip install sccache
|
|
fi
|
|
shell: bash
|
|
|
|
- name: Install
|
|
run: pip install .[test]
|
|
- name: Test with pytest
|
|
run: pytest
|
|
|
|
- name: Store cache
|
|
uses: actions/cache/save@v4
|
|
with:
|
|
path: |
|
|
~/.cache/pip
|
|
~/.cache/pip-wheel
|
|
~/.cache/sccache
|
|
~/.cache/cargo-xwin
|
|
~/.cargo
|
|
~/.osxcross
|
|
key: cache-ubuntu-maturin-cross-compile |