Skip to content

Update Python binding for locally built, see #706 #62

Update Python binding for locally built, see #706

Update Python binding for locally built, see #706 #62

Workflow file for this run

name: Python
on:
push:
tags:
- 'v*'
pull_request:
branches:
- master
jobs:
linux:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- go_target: amd64
cibw_target: x86_64
#- go_target:'386
# cibw_target: i686
- go_target: arm64
cibw_target: aarch64
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up QEMU
if: matrix.go_target == 'arm64'
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Build wheels
uses: pypa/cibuildwheel@v2.18.1
with:
package-dir: bindings/py
env:
CIBW_ARCHS: ${{ matrix.cibw_target }}
CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686
CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64
CIBW_MANYLINUX_AARCH64_IMAGE: quay.io/pypa/manylinux_2_28_aarch64
CIBW_BEFORE_ALL: .ci/ensure-go.sh; make -C bindings/py compile
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.go_target }}
path: ./wheelhouse/*.whl
windows:
runs-on: windows-latest
strategy:
matrix:
include:
- go_target: amd64
cibw_target: AMD64
#- go_target: 386
# cibw_target: x86
#- go_target: arm64
# cibw_target: ARM64
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version: '>=1.17'
- name: Build Windows extension
run: |
set GOOS=windows
set GOARCH=${{ matrix.go_target }}
set CGO_ENABLED=1
make -C bindings/py compile
- name: Build wheels
uses: pypa/cibuildwheel@v2.18.1
with:
package-dir: bindings/py
env:
CIBW_ARCHS: ${{ matrix.cibw_target }}
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.go_target }}
path: ./wheelhouse/*.whl
macos:
runs-on: macos-latest
strategy:
matrix:
include:
- go_target: amd64
cibw_target: x86_64
#- go_target: arm64
# cibw_target: arm64
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version: '>=1.17'
- name: Build MacOS extension
run: |
export GOOS=darwin
export GOARCH=${{ matrix.go_target }}
export CGO_ENABLED=1
export MACOSX_DEPLOYMENT_TARGET=10.9
make -C bindings/py compile
- name: Build wheels
uses: pypa/cibuildwheel@v2.18.1
with:
package-dir: bindings/py
env:
CIBW_ARCHS: ${{ matrix.cibw_target }}
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.go_target }}
path: ./wheelhouse/*.whl
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- uses: actions/setup-go@v5
with:
go-version: '>=1.17'
- name: Install dependencies
run: pip install build
- name: Build package
run: make -C bindings/py build
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels
path: bindings/py/dist/*
release:
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
needs: [linux, windows, macos, sdist]
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: bindings/py/artifacts
- name: Bundle release artifacts
run: |
cd bindings/py/
mkdir dist
mv artifacts/*/* dist/
- name: Upload to GitHub Release
uses: softprops/action-gh-release@v2.0.5
with:
files: bindings/py/dist/*
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@81e9d935c883d0b210363ab89cf05f3894778450
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
packages-dir: bindings/py/dist/