Skip to content

bump for 2024.2.0 major release (#212) #34

bump for 2024.2.0 major release (#212)

bump for 2024.2.0 major release (#212) #34

name: Build wheels for Thicket
on:
# Uncomment for testing through a PR
# pull_request:
# branches: [develop, releases/**]
workflow_dispatch:
release:
types:
- published
push:
tags:
- 'v**'
jobs:
# TODO: if we ever add compiled code to Thicket (e.g., Cython modules),
# remove the build_wheels job
build_wheels:
name: Build wheels for Linux
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.6, 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@v2
with:
python-version: ${{ matrix.python-version }}
- name: Get PyPA build
run: python -m pip install build
- name: Build wheel for Python ${{ matrix.python_version }}
run: python -m build -w
- uses: actions/upload-artifact@v3
with:
path: dist/*.whl
# TODO: if we ever add compiled code to Thicket (e.g., Cython modules),
# uncomment these steps to build wheel files
#
# build_wheels_linux_3:
# name: Build wheels for Linux
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@v3
# - name: Set up QEMU to support non-x86 architectures
# uses: docker/setup-qemu-action@v2
# with:
# platforms: all
# - uses: pypa/[email protected]
# env:
# CIBW_SKIP: pp* *musllinux*
# CIBW_ARCHS_LINUX: auto aarch64 ppc64le
# - uses: actions/upload-artifact@v3
# with:
# path: ./wheelhouse/*.whl
# build_wheels_linux_27:
# name: Build wheels for Python 2.7 on Linux
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@v3
# # Neeed to use cibuildwheel 1 for Python 2.7
# - uses: pypa/[email protected]
# env:
# CIBW_SKIP: pp*
# CIBW_ARCHS_LINUX: auto
# CIBW_PROJECT_REQUIRES_PYTHON: "~=2.7"
# - uses: actions/upload-artifact@v3
# with:
# path: ./wheelhouse/*.whl
# TODO: uncomment if/when we decide to build wheels for macOS
# build_wheels_macos_36_37:
# name: Build wheels for Python 3.6 and 3.7 on macOS
# runs-on: macos-12
# steps:
# - uses: actions/checkout@v3
# - uses: pypa/[email protected]
# env:
# CIBW_SKIP: pp*
# CIBW_ARCHS_MACOS: x86_64
# CIBW_PROJECT_REQUIRES_PYTHON: ">=3.6,<3.8"
# - uses: actions/upload-artifact@v3
# with:
# path: ./wheelhouse/*.whl
# build_wheels_macos_38_plus:
# name: Build wheels for Python 3.8+ on macOS
# runs-on: macos-12
# steps:
# - uses: actions/checkout@v3
# - uses: pypa/[email protected]
# env:
# CIBW_SKIP: pp*
# CIBW_ARCHS_MACOS: x86_64 universal2 arm64
# CIBW_PROJECT_REQUIRES_PYTHON: ">=3.8"
# - uses: actions/upload-artifact@v3
# with:
# path: ./wheelhouse/*.whl
# build_wheels_macos_27:
# name: Build wheels for Python 2.7 on macOS
# runs-on: macos-12
# steps:
# - uses: actions/checkout@v3
# # Neeed to use cibuildwheel 1 for Python 2.7
# - uses: pypa/[email protected]
# env:
# CIBW_SKIP: pp*
# CIBW_BUILD: cp27-macosx_x86_64
# - uses: actions/upload-artifact@v3
# with:
# path: ./wheelhouse/*.whl
build_sdist:
name: Build sdist
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Get PyPA build
run: python -m pip install build
- name: Build sdist
run: python -m build -s
- uses: actions/upload-artifact@v3
with:
path: dist/*.tar.gz
test_upload_to_pypi:
needs:
# - build_wheels_linux_3
# - build_wheels_linux_27
# - build_wheels_macos_36_37
# - build_wheels_macos_38_plus
# - build_wheels_macos_27
- build_wheels
- build_sdist
runs-on: ubuntu-20.04
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- uses: actions/download-artifact@v3
with:
name: artifact
path: dist
- uses: pypa/[email protected]
with:
user: __token__
password: ${{ secrets.THICKET_TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
upload_to_pypi:
needs:
# - build_wheels_linux_3
# - build_wheels_linux_27
# - build_wheels_macos_36_37
# - build_wheels_macos_38_plus
# - build_wheels_macos_27
- build_wheels
- build_sdist
runs-on: ubuntu-20.04
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- uses: actions/download-artifact@v3
with:
name: artifact
path: dist
- uses: pypa/[email protected]
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}