name: Build
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- "main"
|
|
tags:
|
|
- "v*"
|
|
|
|
jobs:
|
|
build_wheels:
|
|
name: Build wheels on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macOS-latest]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v2
|
|
- name: Install cibuildwheel
|
|
run: python -m pip install cibuildwheel~=1.9.0
|
|
- name: Build wheels
|
|
run: python -m cibuildwheel --output-dir wheelhouse
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: wheelhouse
|
|
path: ./wheelhouse/*.whl
|
|
|
|
build_sdist:
|
|
name: Build sdist
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.9
|
|
- run: pip install "poetry~=1.1.4"
|
|
- run: poetry check
|
|
- run: poetry install
|
|
- run: poetry build --format sdist
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: wheelhouse
|
|
path: ./dist/*.tar.gz
|
|
|
|
test_install:
|
|
name: Test install on ${{ matrix.os }} / ${{ matrix.python-version }}
|
|
needs: [build_wheels, build_sdist]
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macOS-latest]
|
|
python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "pypy-2.7", "pypy-3.6", "pypy-3.7"]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: wheelhouse
|
|
path: dist
|
|
- run: pip install --no-index --find-links=./dist sysaudit
|
|
name: Install sysaudit from wheels
|
|
- run: python -c "import sysaudit; sysaudit.audit('event')"
|
|
name: Check module is importable
|
|
|
|
upload_pypi:
|
|
needs: [test_install]
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
|
|
steps:
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: wheelhouse
|
|
path: dist
|
|
|
|
- uses: pypa/gh-action-pypi-publish@master
|
|
with:
|
|
user: __token__
|
|
password: ${{ secrets.PYPI_TOKEN }}
|
|
# To test: repository_url: https://test.pypi.org/legacy/
|