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 - uses: Gr1N/setup-poetry@v4 - 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 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/