Repository navigation
docs: Update projects #41
Workflow file for this run
This file contains hidden or 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
| # SPDX-FileCopyrightText: 2026 The RISE Project | |
| # SPDX-License-Identifier: MIT | |
| --- | |
| # This workflow is based on the `build-databricks-zerobus-ingest-sdk.yml`/ | |
| # `build-nemo-relay.yml` recipe for a maturin/pyo3 crate generating gRPC code | |
| # with prost/tonic: https://github.com/pola-rs/polars-cloud-client ships no | |
| # CI workflow of its own to mirror. | |
| name: Build polars-cloud wheels (riscv64) | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version glob to (re)build; empty builds every version of docs/packages/polars-cloud.yaml not released yet' | |
| required: false | |
| default: '' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-polars-cloud.yml' | |
| - 'docs/packages/polars-cloud.yaml' | |
| push: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-polars-cloud.yml' | |
| - 'docs/packages/polars-cloud.yaml' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read # to fetch code (actions/checkout) | |
| env: | |
| MANYLINUX_RISCV64_IMAGE: quay.io/pypa/manylinux_2_39_riscv64 | |
| jobs: | |
| setup: | |
| uses: $/.github/workflows/_setup.yml | |
| with: | |
| package: polars-cloud | |
| version: ${{ inputs.version }} | |
| build_wheels: | |
| needs: [setup] | |
| if: needs.setup.outputs.versions != '[]' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: ${{ fromJSON(needs.setup.outputs.versions) }} | |
| name: Build polars-cloud ${{ matrix.version }} cp310-abi3-manylinux_riscv64 | |
| runs-on: ubuntu-24.04-riscv | |
| timeout-minutes: 360 | |
| env: | |
| POLARS_CLOUD_VERSION: ${{ matrix.version }} | |
| steps: | |
| - name: Checkout polars-cloud-client client-${{ env.POLARS_CLOUD_VERSION }} | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| repository: pola-rs/polars-cloud-client | |
| ref: client-${{ env.POLARS_CLOUD_VERSION }} | |
| persist-credentials: false | |
| - name: Build wheels | |
| uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0 | |
| with: | |
| package-dir: client | |
| output-dir: wheelhouse/ | |
| env: | |
| # pyo3's abi3-py310 feature (client/crates/lib/Cargo.toml) makes this | |
| # one wheel, built on cp310, the oldest interpreter its tag claims, | |
| # and re-tested on cp312/cp313/cp314 via find_compatible_wheel. | |
| CIBW_BUILD: >- | |
| cp310-manylinux_riscv64 cp312-manylinux_riscv64 | |
| cp313-manylinux_riscv64 cp314-manylinux_riscv64 | |
| CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }} | |
| CIBW_BEFORE_ALL_LINUX: >- | |
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
| # client/crates/lib pulls in protos-{common,client-compute,client-control}, | |
| # which generate code with prost/tonic; Rocky 10's CRB repo (enabled in | |
| # the image) carries protoc (gotcha 100). | |
| CIBW_BEFORE_BUILD: yum install -y protobuf-compiler protobuf-devel | |
| # Each protos crate's build.rs passes explicit, existing include dirs, | |
| # so CRB's protoc resolves google/protobuf/*.proto from protobuf-devel | |
| # by itself; PROTOC_INCLUDE stays unset (gotcha 599). | |
| CIBW_ENVIRONMENT_LINUX: >- | |
| PATH="$PATH:$HOME/.cargo/bin" | |
| PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/ | |
| CIBW_TEST_COMMAND: >- | |
| python -c "import polars_cloud.polars_cloud as m; assert m.__file__.endswith('.so'), m.__file__" && | |
| python -c "import polars_cloud as pc; print(pc.__version__)" && | |
| pc --help | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: polars-cloud-${{ env.POLARS_CLOUD_VERSION }}-cp310-abi3-manylinux_riscv64 | |
| path: wheelhouse/*.whl | |
| if-no-files-found: error | |
| publish: | |
| name: Publish polars-cloud ${{ matrix.version }} | |
| needs: [setup, build_wheels] | |
| if: needs.setup.outputs.versions != '[]' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: ${{ fromJSON(needs.setup.outputs.versions) }} | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| uses: $/.github/workflows/_publish-wheel.yml | |
| secrets: | |
| app-private-key: ${{ secrets.RISEPROJECT_APP_PRIVATE_KEY }} | |
| with: | |
| artifact-pattern: polars-cloud-${{ matrix.version }}-*-manylinux_riscv64 |