Repository navigation
docs: Update projects #5
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: https://github.com/Chia-Network/chia_rs/blob/0.48.0/.github/workflows/build-riscv64.yml | |
| name: Build chia-rs wheels (riscv64) | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version glob to (re)build; empty builds every version of docs/packages/chia-rs.yaml not released yet' | |
| required: false | |
| default: '' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-chia-rs.yml' | |
| - 'docs/packages/chia-rs.yaml' | |
| push: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-chia-rs.yml' | |
| - 'docs/packages/chia-rs.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: chia-rs | |
| version: ${{ inputs.version }} | |
| build_wheels: | |
| needs: [setup] | |
| if: needs.setup.outputs.versions != '[]' | |
| name: Build chia-rs ${{ matrix.version }} ${{ matrix.python }}-manylinux_riscv64 | |
| runs-on: ubuntu-24.04-riscv | |
| timeout-minutes: 360 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: ${{ fromJSON(needs.setup.outputs.versions) }} | |
| python: ["cp312", "cp313", "cp314", "cp314t"] | |
| env: | |
| CHIA_RS_VERSION: ${{ matrix.version }} | |
| steps: | |
| - name: Checkout chia_rs ${{ env.CHIA_RS_VERSION }} | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| repository: Chia-Network/chia_rs | |
| ref: ${{ env.CHIA_RS_VERSION }} | |
| persist-credentials: false | |
| # maturin only picks up licence files beside wheel/pyproject.toml, so upstream's wheels carry none. | |
| - run: cp LICENSE wheel/LICENSE | |
| - uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0 | |
| with: | |
| package-dir: wheel | |
| output-dir: wheelhouse/ | |
| only: ${{ matrix.python }}-manylinux_riscv64 | |
| env: | |
| 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 | |
| CIBW_ENVIRONMENT_LINUX: PATH="$PATH:$HOME/.cargo/bin" | |
| CIBW_TEST_REQUIRES: colorama pytest pytest-xdist clvm | |
| CIBW_TEST_SOURCES: pytest.ini tests test-bundles ff-tests generator-tests | |
| CIBW_TEST_COMMAND: pytest tests | |
| - name: Check wheel contents | |
| run: | | |
| python3 - wheelhouse/*.whl <<'EOF' | |
| import sys, zipfile | |
| names = zipfile.ZipFile(sys.argv[1]).namelist() | |
| exts = {n.split("/")[-1].split(".")[0] for n in names if n.endswith(".so")} | |
| assert exts == {"chia_rs"}, exts | |
| licences = {n.rsplit("/", 1)[-1] for n in names if ".dist-info/licenses/" in n} - {""} | |
| assert licences == {"LICENSE"}, licences | |
| EOF | |
| - name: Store wheels | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: chia-rs-${{ env.CHIA_RS_VERSION }}-${{ matrix.python }}-manylinux_riscv64 | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| publish: | |
| name: Publish chia-rs ${{ 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: chia-rs-${{ matrix.version }}-*-manylinux_riscv64 |