Skip to content

set pkg-config symlink? #32

set pkg-config symlink?

set pkg-config symlink? #32

name: Python (geoarrow.proj) Wheels
on:
push:
# tags:
# - "python-core-v*"
jobs:
build-wheel-manylinux2014:
name: "Build manylinux2014 wheels"
runs-on: ubuntu-latest
container: quay.io/pypa/manylinux2014_x86_64
defaults:
run:
working-directory: python/geoarrow-proj
# NOTE: We abstain from most reusable github actions given that this is running in a docker
# image
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Install latest stable rust
run: |
curl --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --profile minimal --default-toolchain stable -y
- name: Install python dependencies
run: |
export PATH="/opt/python/cp38-cp38/bin/:$PATH"
pip install -U pip
pip install maturin
- name: Install Pixi
run: |
curl -fsSL https://pixi.sh/install.sh | bash
- name: Install build requirements
run: |
export PATH="$HOME/.pixi/bin:$PATH"
cd build
pixi install
- name: Build Python wheel
run: |
source $HOME/.cargo/env
export PATH="/opt/python/cp38-cp38/bin/:$PATH"
export PATH="$HOME/.pixi/bin:$PATH"
export LD_LIBRARY_PATH="$(pwd)/build/.pixi/env/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$(pwd)/build/.pixi/env/lib/pkgconfig:$PKG_CONFIG_PATH"
export LIBCLANG_PATH="$(pwd)/build/.pixi/env/lib/pkgconfig:$PKG_CONFIG_PATH"
maturin build --release --strip --interpreter /opt/python/cp38-cp38/bin/python --manylinux 2014 -o wheels
- name: List wheels
run: find ./wheels
# Have to set path from root
# https://github.com/actions/upload-artifact/issues/232#issuecomment-964235360
- uses: actions/upload-artifact@v2
with:
path: python/geoarrow-proj/wheels/*.whl
build-wheels-mac-x86:
runs-on: macos-latest
defaults:
run:
working-directory: python/geoarrow-proj
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.8"
- name: Install Pixi
run: |
curl -fsSL https://pixi.sh/install.sh | bash
echo "$HOME/.pixi/bin" >> $GITHUB_PATH
- name: Install build requirements
run: |
cd build
pixi install
- name: Set native dependency paths
run: |
echo "LD_LIBRARY_PATH=$(pwd)/build/.pixi/env/lib" >> "$GITHUB_ENV"
echo "PKG_CONFIG_PATH=$(pwd)/build/.pixi/env/lib/pkgconfig" >> "$GITHUB_ENV"
- name: Install Python dependencies
run: |
python -V
pip install maturin
- name: Build
run: |
maturin build --release --strip -o wheels
- name: Include shared libraries
run: |
pip install delocate
# TODO: delocate shared lib
- name: List wheels
run: find ./wheels
# Have to set path from root
# https://github.com/actions/upload-artifact/issues/232#issuecomment-964235360
- uses: actions/upload-artifact@v2
with:
path: python/geoarrow-proj/wheels/*.whl
build-wheel-windows:
runs-on: windows-latest
defaults:
run:
working-directory: python/geoarrow-proj
strategy:
fail-fast: false
matrix:
include:
- os: "windows-2019"
arch: "auto64"
triplet: "x64-windows"
vcpkg_cache: "c:\\vcpkg\\installed"
vcpkg_logs: "c:\\vcpkg\\buildtrees\\**\\*.log"
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Install Pixi
run: |
iwr -useb https://pixi.sh/install.ps1 | iex
- name: Add pixi to PATH
shell: bash
run: |
echo "C:/Users/runneradmin/AppData/Local/pixi/bin" >> $GITHUB_PATH
- name: Install build requirements
shell: bash
run: |
cd build
pixi install
- name: Set native dependency paths
shell: bash
run: |
echo "listing env"
ls $(pwd)/build/.pixi/env
echo "listing Library"
ls $(pwd)/build/.pixi/env/Library
echo "listing Library/bin"
ls $(pwd)/build/.pixi/env/Library/bin
echo "listing Library/lib"
ls $(pwd)/build/.pixi/env/Library/lib
echo "listing Library/include"
ls $(pwd)/build/.pixi/env/Library/include
echo "$(pwd)/build/.pixi/env/Library/bin" >> $GITHUB_PATH
echo "LD_LIBRARY_PATH=$(pwd)/build/.pixi/env/Library/lib" >> "$GITHUB_ENV"
echo "PKG_CONFIG_PATH=$(pwd)/build/.pixi/env/Library/lib/pkgconfig" >> "$GITHUB_ENV"
cd build/.pixi/env/Library/bin && ln -s pkg-config.exe pkg-config && cd -
- name: Install Python dependencies
shell: bash
run: |
python -V
python -m pip install maturin
python -m pip install delvewheel
- name: Build
shell: bash
run: |
echo "$PKG_CONFIG_PATH"
maturin build --release --strip -o wheels
- name: List wheels
shell: bash
run: find ./wheels
# Have to set path from root
# https://github.com/actions/upload-artifact/issues/232#issuecomment-964235360
- uses: actions/upload-artifact@v2
with:
path: python/geoarrow-proj/wheels/*.whl
build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
defaults:
run:
working-directory: python/geoarrow-proj
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- uses: actions/setup-python@v2
name: Install Python
with:
python-version: "3.8"
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Build sdist
run: |
pip install -U build
python -m build --sdist
# Have to set path from root
# https://github.com/actions/upload-artifact/issues/232#issuecomment-964235360
- uses: actions/upload-artifact@v2
with:
path: python/geoarrow-proj/dist/*.tar.gz
# upload_pypi:
# needs:
# [
# build-wheel-manylinux2014,
# build-wheels-mac-x86,
# build-wheel-windows,
# build_sdist,
# ]
# runs-on: ubuntu-latest
# # Make sure we only run this on new tags/release
# if: startsWith(github.event.ref, 'refs/tags') || github.event_name == 'release'
# steps:
# - uses: actions/download-artifact@v2
# with:
# name: artifact
# path: dist
# - uses: pypa/gh-action-pypi-publish@release/v1
# with:
# user: __token__
# password: ${{ secrets.PYPI_PASSWORD }}
# # To test: repository_url: https://test.pypi.org/legacy/