Repository navigation
docs: Update projects #74
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 | |
| --- | |
| # Based on upstream's own wheel builder: | |
| # https://github.com/reflex-dev/fast-walk/blob/v0.2.2/.github/workflows/CI.yml | |
| name: Build fast-walk wheels (riscv64) | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version glob to (re)build; empty builds every version of docs/packages/fast-walk.yaml not released yet' | |
| required: false | |
| default: '' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-fast-walk.yml' | |
| - 'docs/packages/fast-walk.yaml' | |
| push: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-fast-walk.yml' | |
| - 'docs/packages/fast-walk.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: fast-walk | |
| version: ${{ inputs.version }} | |
| build_wheels: | |
| needs: [setup] | |
| if: needs.setup.outputs.versions != '[]' | |
| name: Build fast-walk ${{ matrix.version }} ${{ matrix.python }}-manylinux_riscv64 | |
| runs-on: ubuntu-24.04-riscv | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: ${{ fromJSON(needs.setup.outputs.versions) }} | |
| # No abi3 feature on pyo3 in Cargo.toml, so upstream ships one wheel | |
| # per interpreter (matches PyPI's cp3xx-cp3xx tags). requires-python | |
| # is >=3.13, so no cp312 or older; pyo3 0.29.2 already has published | |
| # working cp314/cp314t/cp315/cp315t wheels upstream, so none of them | |
| # are dropped for gotcha 322/326-style pyo3 ceiling/segfault reasons. | |
| python: ["cp313", "cp314", "cp314t", "cp315", "cp315t"] | |
| env: | |
| FAST_WALK_VERSION: ${{ matrix.version }} | |
| steps: | |
| - name: Checkout fast-walk v${{ env.FAST_WALK_VERSION }} | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| repository: reflex-dev/fast-walk | |
| ref: v${{ env.FAST_WALK_VERSION }} | |
| persist-credentials: false | |
| - name: Build wheels | |
| uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0 | |
| with: | |
| output-dir: wheelhouse/ | |
| # musllinux is dropped: rustup.rs ships no riscv64 musl toolchain. | |
| only: ${{ matrix.python }}-manylinux_riscv64 | |
| env: | |
| CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }} | |
| # fast-walk ships no [tool.cibuildwheel], so the Rust toolchain | |
| # its maturin backend needs is installed in-container here. | |
| CIBW_BEFORE_ALL_LINUX: >- | |
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
| CIBW_ENVIRONMENT_LINUX: PATH="$PATH:$HOME/.cargo/bin" | |
| CIBW_TEST_REQUIRES: pytest | |
| CIBW_TEST_SOURCES: tests | |
| # CPython 3.13 caps AST construction at a fixed C recursion limit of | |
| # 10000 (on every arch), so ast.parse() of these 20000-deep chains | |
| # raises RecursionError before fast-walk runs; 3.14+ checks real stack. | |
| CIBW_TEST_COMMAND: >- | |
| python -c "import fast_walk.fast_walk as ext; assert ext.__file__.endswith('.so'), ext.__file__" && | |
| python -m pytest -v tests | |
| ${{ matrix.python == 'cp313' && '--deselect tests/test_fields.py::test_fix_missing_locations_on_a_deep_chain --deselect tests/test_frontier.py::test_a_deep_chain_does_not_recurse' || '' }} | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: fast-walk-${{ env.FAST_WALK_VERSION }}-${{ matrix.python }}-manylinux_riscv64 | |
| path: wheelhouse/*.whl | |
| if-no-files-found: error | |
| publish: | |
| name: Publish fast-walk ${{ 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: fast-walk-${{ matrix.version }}-*-manylinux_riscv64 |