Repository navigation
spacy-transformers: Add version 1.4.0 #1
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 `setup.py`/`pyproject.toml` cibuildwheel config of | |
| # https://github.com/explosion/spacy-transformers/blob/release-v1.4.0/pyproject.toml | |
| # and the test invocation of | |
| # https://github.com/explosion/spacy-transformers/blob/release-v1.4.0/.github/workflows/tests.yml | |
| name: Build spacy-transformers wheels (riscv64) | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version glob to (re)build; empty builds every version of docs/packages/spacy-transformers.yaml not released yet' | |
| required: false | |
| default: '' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-spacy-transformers.yml' | |
| - 'docs/packages/spacy-transformers.yaml' | |
| push: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-spacy-transformers.yml' | |
| - 'docs/packages/spacy-transformers.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: spacy-transformers | |
| version: ${{ inputs.version }} | |
| build_wheels: | |
| needs: [setup] | |
| if: needs.setup.outputs.versions != '[]' | |
| name: Build spacy-transformers ${{ 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) }} | |
| # Upstream's [tool.cibuildwheel] skips `cp3??t-*` (no free-threaded | |
| # wheels) and builds cp310/cp311 too, but torch - a hard runtime | |
| # dependency - has no riscv64 wheel on our registry or public PyPI for | |
| # cp310/cp311, only cp312-cp314t. | |
| python: | |
| - "cp312" | |
| - "cp313" | |
| - "cp314" | |
| env: | |
| SPACY_TRANSFORMERS_VERSION: ${{ matrix.version }} | |
| steps: | |
| - name: Checkout spacy-transformers ${{ env.SPACY_TRANSFORMERS_VERSION }} | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| repository: explosion/spacy-transformers | |
| ref: release-v${{ env.SPACY_TRANSFORMERS_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 }} | |
| # numpy (build and runtime) and spacy/srsly/torch (runtime) have no | |
| # riscv64 wheels on public PyPI; both environments resolve them from | |
| # our registry. spacy-alignments (runtime) has no riscv64 wheel | |
| # anywhere yet, so its sdist is compiled instead - it needs a Rust | |
| # toolchain, installed below, but is never actually imported by this | |
| # package or its tests. | |
| CIBW_ENVIRONMENT: >- | |
| PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/ | |
| PATH=$PATH:$HOME/.cargo/bin | |
| CIBW_BEFORE_ALL_LINUX: >- | |
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
| # Upstream leaves cibuildwheel's test-command empty and runs the | |
| # suite from tests.yml instead; this is that invocation, minus the | |
| # sdist build/mypy steps, which check packaging and typing, not the | |
| # wheel. | |
| CIBW_TEST_REQUIRES: pytest pytest-cov | |
| CIBW_TEST_COMMAND: python -m pytest --pyargs spacy_transformers | |
| - name: Check the extension modules made it into the wheel | |
| run: | | |
| python3 - wheelhouse/*.whl <<'EOF' | |
| import sys, zipfile | |
| expected = {"spacy_transformers/align"} | |
| for whl in sys.argv[1:]: | |
| found = {n.split(".", 1)[0] for n in zipfile.ZipFile(whl).namelist() | |
| if n.endswith(".so")} | |
| assert found == expected, (whl, found) | |
| print(whl, "ok") | |
| EOF | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: spacy-transformers-${{ env.SPACY_TRANSFORMERS_VERSION }}-${{ matrix.python }}-manylinux_riscv64 | |
| path: wheelhouse/*.whl | |
| if-no-files-found: error | |
| publish: | |
| name: Publish spacy-transformers ${{ 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: spacy-transformers-${{ matrix.version }}-*-manylinux_riscv64 |