Skip to content

Merge pull request #87 from scalableminds/scala213 #207

Merge pull request #87 from scalableminds/scala213

Merge pull request #87 from scalableminds/scala213 #207

Workflow file for this run

name: Build Python module
on: [push]
jobs:
test_rust:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- run: |
cd rust
cargo test
build_lin:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Build testing docker container
run: |
docker build -f python/Dockerfile -t testing .
- name: Build
run: |
docker run \
-v$(pwd):/app \
-w/app/python \
testing \
bash -c "
\$PYBIN/python setup.py install
\$PYBIN/python setup.py bdist_wheel -p manylinux2014_x86_64"
- name: Test
run: |
docker run \
-v$(pwd):/app \
-w/app/python \
testing \
bash -c "\$PYBIN/pytest tests -v"
- name: Check formatting
run: |
docker run \
-v$(pwd):/app \
-w/app/python \
testing \
bash -c "\$PYBIN/black --check ."
- uses: actions/upload-artifact@v3
with:
name: wheels
path: ./python/dist/*.whl
- name: Make sdist
run: |
docker run \
-v$(pwd):/app \
-w/app/python \
testing \
bash -c "\$PYBIN/python setup.py sdist"
- uses: actions/upload-artifact@v3
with:
name: targz
path: ./python/dist/*.tar.gz
build_mac:
runs-on: macos-12
strategy:
max-parallel: 4
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: "x64" # (x64 or x86)
- name: Install Rust
run: |
brew install rustup-init
rustup-init -y
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-darwin
- name: Build
run: |
cd python
export PATH=$PATH:$HOME/.cargo/bin
pip install wheel
python setup.py bdist_wheel -p macosx-10.9-universal2
pip install dist/*.whl
- name: Test
run: |
cd python
python -c "import wkw"
pip install pytest
pytest tests
- uses: actions/upload-artifact@v3
with:
name: wheels
path: ./python/dist/*.whl
build_win:
runs-on: windows-2022
defaults:
run:
shell: bash
strategy:
max-parallel: 4
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: "x64" # (x64 or x86)
- name: Build
run: |
cd python
pip install wheel
python setup.py bdist_wheel -p $(python -c "import distutils.util; print(distutils.util.get_platform())")
pip install dist/*.whl
- name: Test
run: |
cd python
python -c "import wkw"
pip install pytest
pytest tests -k "not big_read"
- name: Test (non-bash)
shell: cmd
run: |
cd python
python -c "import wkw"
pytest tests -k "not big_read"
- uses: actions/upload-artifact@v3
with:
name: wheels
path: ./python/dist/*.whl
publish:
needs:
- test_rust
- build_lin
- build_mac
- build_win
runs-on: ubuntu-latest
if: startsWith(github.event.ref, 'refs/tags')
steps:
- uses: actions/checkout@v3
with:
fetch-depth: "0"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Get wheels
uses: actions/download-artifact@v3
with:
name: wheels
path: dist
- name: Get tar.gz
uses: actions/download-artifact@v3
with:
name: targz
path: dist
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_PASSWORD }}
skip-existing: true
complete:
needs:
- test_rust
- build_lin
- build_mac
- build_win
if: always()
runs-on: ubuntu-latest
steps:
- name: Check failure
if: |
contains(needs.*.result, 'failure') ||
contains(needs.*.result, 'cancelled')
run: exit 1
- name: Success
run: echo Success!