docs: Update projects #17
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 Linux job of | |
| # https://github.com/chalk-ai/viztracer/blob/v1.1.2/.github/workflows/wheels.yml | |
| name: Build chalk-viztracer wheels (riscv64) | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version glob to (re)build; empty builds every version of docs/packages/chalk-viztracer.yaml not released yet' | |
| required: false | |
| default: '' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-chalk-viztracer.yml' | |
| - 'docs/packages/chalk-viztracer.yaml' | |
| push: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-chalk-viztracer.yml' | |
| - 'docs/packages/chalk-viztracer.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: chalk-viztracer | |
| version: ${{ inputs.version }} | |
| build_wheels: | |
| needs: [setup] | |
| if: needs.setup.outputs.versions != '[]' | |
| name: Build chalk-viztracer ${{ matrix.version }} ${{ matrix.python }}-manylinux_riscv64 | |
| runs-on: ubuntu-24.04-riscv | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: ${{ fromJSON(needs.setup.outputs.versions) }} | |
| python: ["cp312", "cp313", "cp314", "cp314t"] | |
| env: | |
| CHALK_VIZTRACER_VERSION: ${{ matrix.version }} | |
| steps: | |
| - name: Checkout chalk-viztracer v${{ env.CHALK_VIZTRACER_VERSION }} | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| repository: chalk-ai/viztracer | |
| ref: v${{ env.CHALK_VIZTRACER_VERSION }} | |
| persist-credentials: false | |
| - name: Build wheels | |
| uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0 | |
| with: | |
| output-dir: wheelhouse/ | |
| only: ${{ matrix.python }}-manylinux_riscv64 | |
| env: | |
| CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }} | |
| CIBW_TEST_REQUIRES: pytest psutil loky | |
| CIBW_TEST_SOURCES: tests example | |
| # test_remote.py needs attach_process/'s prebuilt injector .so, which | |
| # upstream ships only for x86/amd64/x86_64; test_torch.py needs torch | |
| # per interpreter, not all of which our registry covers. | |
| # test_use_external_processor hangs forever on riscv64: it shells out to | |
| # Perfetto's trace_processor, whose prebuilt-binary manifest has no | |
| # riscv64 entry, and the test's own readline-until-marker wait has no | |
| # timeout so the exited child's closed pipe spins it forever (see | |
| # gotcha 297 / build-viztracer.yml's identical case upstream). | |
| # Paths are relative to cibuildwheel's test cwd, not {project} (gotcha | |
| # 25): test_tracer.py's include_files/exclude_files tests compare | |
| # co_filename against os.path.abspath("./"), which is the test cwd, so | |
| # collecting via an absolute {project}/tests path breaks that match and | |
| # fails test_include_files/test_exclude_files regardless of platform. | |
| CIBW_TEST_COMMAND: pytest tests --ignore=tests/test_torch.py --ignore=tests/test_remote.py -k "not test_use_external_processor" | |
| CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/ | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: chalk-viztracer-${{ env.CHALK_VIZTRACER_VERSION }}-${{ matrix.python }}-manylinux_riscv64 | |
| path: wheelhouse/*.whl | |
| if-no-files-found: error | |
| publish: | |
| name: Publish chalk-viztracer ${{ 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: chalk-viztracer-${{ matrix.version }}-*-manylinux_riscv64 |