traits: Add version 7.2.0 #11
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 the `build-wheels` job of | |
| # https://github.com/enthought/traits/blob/7.1.0/.github/workflows/release-to-pypi.yml | |
| name: Build traits wheels (riscv64) | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version glob to (re)build; empty builds every version of docs/packages/traits.yaml not released yet' | |
| required: false | |
| default: '' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-traits.yml' | |
| - 'docs/packages/traits.yaml' | |
| push: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-traits.yml' | |
| - 'docs/packages/traits.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 | |
| MUSLLINUX_RISCV64_IMAGE: quay.io/pypa/musllinux_1_2_riscv64 | |
| jobs: | |
| setup: | |
| uses: $/.github/workflows/_setup.yml | |
| with: | |
| package: traits | |
| version: ${{ inputs.version }} | |
| build_wheels: | |
| needs: [setup] | |
| if: needs.setup.outputs.versions != '[]' | |
| name: Build traits ${{ matrix.version }} ${{ matrix.python }}-${{ matrix.libc }}_riscv64 | |
| runs-on: ubuntu-24.04-riscv | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: ${{ fromJSON(needs.setup.outputs.versions) }} | |
| python: ["cp312", "cp313", "cp314", "cp314t"] | |
| libc: [manylinux, musllinux] | |
| env: | |
| TRAITS_VERSION: ${{ matrix.version }} | |
| steps: | |
| - name: Checkout traits ${{ env.TRAITS_VERSION }} | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| repository: enthought/traits | |
| ref: ${{ env.TRAITS_VERSION }} | |
| persist-credentials: false | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 | |
| with: | |
| python-version: '3.12' | |
| activate-environment: true | |
| enable-cache: false | |
| # TEMPORARY: run cibuildwheel via CLI (instead of the pypa/cibuildwheel action) | |
| # and tee its output to a file, because this run's per-job logs came back | |
| # BlobNotFound from the Actions API (gotcha 62) - revert to the action once a | |
| # real failure log is in hand. | |
| - name: Build and test wheel | |
| env: | |
| CIBW_ARCHS: riscv64 | |
| CIBW_BUILD: ${{ matrix.python }}-${{ matrix.libc }}_riscv64 | |
| CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }} | |
| CIBW_MUSLLINUX_RISCV64_IMAGE: ${{ env.MUSLLINUX_RISCV64_IMAGE }} | |
| # traits/tests is a real subpackage shipped in the wheel (setup.py's | |
| # find_packages(include=["traits", "traits.*"]) picks it up), so the | |
| # installed wheel already carries its own test suite - no staging needed. | |
| # Mirrors upstream's own "Core tests" job (no test extras installed), | |
| # which exists precisely to catch accidental optional-dependency use; | |
| # traits/testing/optional_dependencies.py skipIf's the rest. | |
| CIBW_TEST_COMMAND: >- | |
| python -c "import traits.ctraits as m; assert m.__file__.endswith('.so'), m.__file__" && | |
| python -m unittest discover -v traits | |
| run: | | |
| set -o pipefail | |
| uv pip install --upgrade cibuildwheel | |
| python -m cibuildwheel --output-dir wheelhouse . 2>&1 | tee cibuildwheel.log | |
| - name: Upload build log | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: traits-${{ env.TRAITS_VERSION }}-${{ matrix.python }}-${{ matrix.libc }}_riscv64-log | |
| path: cibuildwheel.log | |
| if-no-files-found: warn | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: traits-${{ env.TRAITS_VERSION }}-${{ matrix.python }}-${{ matrix.libc }}_riscv64 | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| publish: | |
| name: Publish traits ${{ 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: traits-${{ matrix.version }}-*riscv64 |