Skip to content

.github/workflows/release.yaml #61

.github/workflows/release.yaml

.github/workflows/release.yaml #61

Workflow file for this run

# This workflow builds binary wheels for indexed_gzip, for
# different platforms and different Python versions, using
# cibuildwheel. It is triggered manually. The built wheels
# are published to PyPi.
on:
workflow_dispatch
defaults:
run:
shell: bash
jobs:
build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: "3.11"
- name: Build sdist
run: python setup.py sdist
- uses: actions/upload-artifact@v4.4.3
with:
name: sdist
path: ./dist/*.tar.gz
build_macos_wheels:
name: Build macos wheels
runs-on: macos-latest
env:
PLATFORM: ${{ matrix.os }}
CIBW_ARCHS_MACOS: "x86_64 arm64 universal2"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: "3.11"
- name: Build wheels
run: bash ./.ci/build_wheels.sh
- uses: actions/upload-artifact@v4.4.3
with:
name: macos_wheels
path: ./dist/*.whl
build_windows_wheels:
name: Build Windows ${{ matrix.arch }} wheels
runs-on: windows-latest
strategy:
matrix:
arch: ["AMD64", "x86"]
env:
PLATFORM: windows-latest
CIBW_ARCHS_WINDOWS: ${{ matrix.arch }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: "3.11"
- name: Download zlib
run: bash ./.ci/download_zlib.sh
- name: Build wheels
run: bash ./.ci/build_wheels.sh
- uses: actions/upload-artifact@v4.4.3
with:
name: windows_${{ matrix.arch }}_wheels
path: ./dist/*.whl
build_linux_wheels:
# Typo left in for hilarity
name: Build Linux ${{ matrix.arch }} eels
runs-on: ubuntu-latest
strategy:
matrix:
arch: ["x86_64", "i686", "aarch64"]
env:
PLATFORM: ubuntu-latest
CIBW_ARCHS_LINUX: ${{ matrix.arch }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: "3.11"
- name: Set up QEMU for emulated (e.g. ARM) builds
if: ${{ matrix.arch == 'aarch64' }}
uses: docker/setup-qemu-action@v3
- name: Build wheels
run: bash ./.ci/build_wheels.sh
- uses: actions/upload-artifact@v4.4.3
with:
name: linux_${{ matrix.arch }}_wheels
path: ./dist/*.whl
publish_to_pypi:
name: Publish indexed_gzip to PyPi
runs-on: ubuntu-latest
needs: [build_sdist, build_macos_wheels, build_windows_wheels, build_linux_wheels]
steps:
- name: Download wheels
uses: actions/download-artifact@v4
with:
path: dist/
merge-multiple: true
- name: Publish archives to PyPI
uses: pypa/gh-action-pypi-publish@v1.11.0
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}