.github/workflows/release.yaml #59
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
# 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/[email protected] | |
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/[email protected] | |
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/[email protected] | |
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/[email protected] | |
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/[email protected] | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_TOKEN }} |