diff --git a/.github/workflows/python-proj-wheels.yml b/.github/workflows/python-proj-wheels.yml index 1b3543ea2..f1527b97f 100644 --- a/.github/workflows/python-proj-wheels.yml +++ b/.github/workflows/python-proj-wheels.yml @@ -6,131 +6,131 @@ on: # - "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 + 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 clang - # run: | - # # Install clang via yum to fix error: - # # error: 'stddef.h' file not found - # # Not sure why I can't get this to work via pixi. Am I missing a dependency? - # yum update - # yum install -y clang - # yum install -y llvm-toolset-7 - - # - 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" - # # export RUSTFLAGS="-I$(pwd)/build/.pixi/env/include" - - # # pixi run --manifest-path build/pixi.toml - # maturin build --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 + # 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" - # build-wheels-mac-x86: - # runs-on: macos-latest - # defaults: - # run: - # working-directory: python/geoarrow-proj + - name: Install latest stable rust + run: | + curl --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --profile minimal --default-toolchain stable -y - # steps: - # - uses: actions/checkout@v3 - # with: - # submodules: "recursive" + - name: Install python dependencies + run: | + export PATH="/opt/python/cp38-cp38/bin/:$PATH" + pip install -U pip + pip install maturin - # - name: Install Rust - # uses: dtolnay/rust-toolchain@stable + - name: Install clang + run: | + # Install clang via yum to fix error: + # error: 'stddef.h' file not found + # Not sure why I can't get this to work via pixi. Am I missing a dependency? + yum update + yum install -y clang + yum install -y llvm-toolset-7 - # - uses: Swatinem/rust-cache@v2 + - name: Install Pixi + run: | + curl -fsSL https://pixi.sh/install.sh | bash - # - 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 --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 + - 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" + # export RUSTFLAGS="-I$(pwd)/build/.pixi/env/include" + + # pixi run --manifest-path build/pixi.toml + maturin build --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 --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