Merge pull request #973 from benjeffery/changelog2 #324
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and test wheels | |
on: | |
push: | |
branches: | |
- main | |
- test | |
tags: | |
- '*' | |
release: | |
types: [published] | |
jobs: | |
OSX: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
python: [3.9, "3.10", 3.11, 3.12] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install deps | |
run: | | |
pip install --upgrade pip build delocate | |
- name: Build Wheel | |
run: | | |
python -m build --wheel | |
- name: Delocate to bundle dynamic libs | |
run: | | |
delocate-wheel -v dist/*.whl | |
- name: Upload Wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: osx-wheel-${{ matrix.python }} | |
path: dist | |
windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
python: [3.9, "3.10", 3.11, 3.12] | |
wordsize: [64] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install deps | |
env: | |
PYTHON: "py -${{ matrix.python }}-${{ matrix.wordsize }}" | |
shell: bash | |
run: | | |
set -ex | |
${PYTHON} -m pip install --upgrade pip build | |
- name: Build Wheel | |
env: | |
PYTHON: "py -${{ matrix.python }}-${{ matrix.wordsize }}" | |
shell: bash | |
run: | | |
set -ex | |
${PYTHON} -m build --wheel | |
- name: Upload Wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: win-wheel-${{ matrix.python }}-${{ matrix.wordsize }} | |
path: dist | |
manylinux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.9 | |
- name: Build sdist | |
shell: bash | |
run: | | |
pip install --upgrade pip build | |
python -m build --sdist | |
- name: Upload sdist | |
uses: actions/upload-artifact@v3 | |
with: | |
name: sdist | |
path: dist | |
- name: Build wheels in docker | |
shell: bash | |
run: | | |
docker run --rm -v `pwd`:/project -w /project quay.io/pypa/manylinux2014_x86_64 bash .github/workflows/docker/buildwheel.sh | |
- name: Upload Wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-wheels | |
path: dist/wheelhouse | |
OSX-test: | |
needs: ['OSX'] | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
python: [3.9, "3.10", 3.11, 3.12] | |
steps: | |
- name: Download wheels | |
uses: actions/download-artifact@v3 | |
with: | |
name: osx-wheel-${{ matrix.python }} | |
- name: Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install wheel and test | |
run: | | |
python -VV | |
# Install the local wheel | |
pip install --no-index --no-deps --find-links=. tsinfer | |
pip install tsinfer | |
python -c "import tsinfer" | |
windows-test: | |
needs: ['windows'] | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
python: [3.9, "3.10", 3.11, 3.12] | |
wordsize: [64] | |
steps: | |
- name: Download wheels | |
uses: actions/download-artifact@v3 | |
with: | |
name: win-wheel-${{ matrix.python }}-${{ matrix.wordsize }} | |
- name: Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install wheel and test | |
run: | | |
python -VV | |
#patch-ng required to build lmdb | |
pip install patch-ng | |
# Install the local wheel | |
pip install --no-index --no-deps --find-links=. tsinfer | |
pip install tsinfer | |
python -c "import tsinfer" | |
manylinux-test: | |
runs-on: ubuntu-latest | |
needs: ['manylinux'] | |
strategy: | |
matrix: | |
python: [3.9, "3.10", 3.11, 3.12] | |
steps: | |
- name: Download wheels | |
uses: actions/download-artifact@v3 | |
with: | |
name: linux-wheels | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install wheel and test | |
run: | | |
python -VV | |
# Install the local wheel | |
pip install --no-index --no-deps --find-links=. tsinfer | |
pip install tsinfer | |
python -c "import tsinfer" | |
PyPI_Upload: | |
runs-on: ubuntu-latest | |
environment: release | |
needs: ['windows-test', 'OSX-test', 'manylinux-test'] | |
permissions: | |
id-token: write | |
steps: | |
- name: Download all | |
uses: actions/download-artifact@v3 | |
- name: Move to dist | |
run: | | |
mkdir dist | |
cp */*.{whl,gz} dist/. | |
- name: Publish distribution to Test PyPI | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
repository_url: https://test.pypi.org/legacy/ | |
- name: Publish distribution to PRODUCTION PyPI | |
if: github.event_name == 'release' | |
uses: pypa/gh-action-pypi-publish@release/v1 |