name: build manylinux
on:
push:
jobs:
build:
if: contains(github.event.head_commit.message, '[skip ci]') == false
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- 3.5
- 3.6
- 3.7
- 3.8
container:
image: quay.io/pypa/manylinux1_x86_64:2020-03-07-9c5ba95
env:
PATH: /root/.cargo/bin:/root/.local/bin:/opt/python/cp36-cp36m/bin:/opt/python/cp37-cp37m/bin:/opt/python/cp38-cp38/bin:/opt/rh/devtoolset-2/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/python/cp35-cp35m/bin:/opt/python/cp36-cp36m/bin:/opt/python/cp37-cp37m/bin:/opt/python/cp38-cp38/bin
options: --user root
env:
HOME: /root
PYTHON: python${{ matrix.python-version }}
steps:
- uses: actions/checkout@v1
- name: Install rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain nightly --profile minimal -y
- name: Test rust lib
run: cargo test
- name: Install dependencies with pip
working-directory: python
run: |
$PYTHON -m pip install --upgrade pip
$PYTHON -m venv .venv
$PYTHON -m pip install poetry maturin
poetry install
poetry run which python
- name: Build python package
working-directory: python
run: poetry run maturin develop
- name: Test with pytest
working-directory: python
run: poetry run pytest tests
- name: Install publishment tool
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/python/')
working-directory: python
run: $PYTHON -m pip install twine auditwheel
- name: Build
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/python/')
working-directory: python
run: |
maturin build --no-sdist --release --strip -i $PYTHON
find target/ -type f -name "*whl" -exec $PYTHON -m auditwheel repair {} \;
- name: Publish test pypi
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/python/')
working-directory: python
run: |
twine upload target/wheels/*whl --repository-url https://test.pypi.org/legacy/ -u ${{ secrets.TEST_PYPI_USER }} -p ${{ secrets.TEST_PYPI_PASS }}
- name: Publish pypi
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/python/')
working-directory: python
run: |
twine upload target/wheels/*whl -u ${{ secrets.PYPI_USER }} -p ${{ secrets.PYPI_PASS }}