Skip to content

Commit 2e2e5f1

Browse files
committed
pykvfinder: Add version 0.9.5
1 parent b537cdb commit 2e2e5f1

2 files changed

Lines changed: 136 additions & 0 deletions

File tree

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# SPDX-FileCopyrightText: 2026 The RISE Project
2+
# SPDX-License-Identifier: MIT
3+
---
4+
# Based on upstream's own deploy.yml build_wheels job, which is a thin wrapper
5+
# around pyproject.toml's [tool.cibuildwheel] table; narrowed here to riscv64
6+
# by overriding just the arch and image (before-build/test-command/
7+
# test-requires are read from pyproject.toml as upstream already declares them).
8+
name: Build pykvfinder wheels (riscv64)
9+
10+
on:
11+
workflow_dispatch:
12+
inputs:
13+
version:
14+
description: 'Version glob to (re)build; empty builds every version of docs/packages/pykvfinder.yaml not released yet'
15+
required: false
16+
default: ''
17+
pull_request:
18+
branches: [main]
19+
paths:
20+
- '.github/workflows/build-pykvfinder.yml'
21+
- 'docs/packages/pykvfinder.yaml'
22+
push:
23+
branches: [main]
24+
paths:
25+
- '.github/workflows/build-pykvfinder.yml'
26+
- 'docs/packages/pykvfinder.yaml'
27+
28+
concurrency:
29+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
30+
cancel-in-progress: true
31+
32+
permissions:
33+
contents: read # to fetch code (actions/checkout)
34+
35+
env:
36+
MANYLINUX_RISCV64_IMAGE: quay.io/pypa/manylinux_2_39_riscv64
37+
38+
jobs:
39+
setup:
40+
uses: $/.github/workflows/_setup.yml
41+
with:
42+
package: pykvfinder
43+
version: ${{ inputs.version }}
44+
45+
build_wheels:
46+
needs: [setup]
47+
if: needs.setup.outputs.versions != '[]'
48+
name: Build pykvfinder ${{ matrix.version }} ${{ matrix.python }}-manylinux_riscv64
49+
runs-on: ubuntu-24.04-riscv
50+
timeout-minutes: 60
51+
strategy:
52+
fail-fast: false
53+
matrix:
54+
version: ${{ fromJSON(needs.setup.outputs.versions) }}
55+
# Upstream builds cp310-cp314, no cp314t (its SWIG/OpenMP extension
56+
# declares no free-threading support); cp310/cp311 dropped to match
57+
# this registry's numpy floor.
58+
python: ["cp312", "cp313", "cp314"]
59+
60+
env:
61+
PYKVFINDER_VERSION: ${{ matrix.version }}
62+
63+
steps:
64+
- name: Checkout pyKVFinder v${{ env.PYKVFINDER_VERSION }}
65+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
66+
with:
67+
repository: LBC-LNBio/pyKVFinder
68+
ref: v${{ env.PYKVFINDER_VERSION }}
69+
persist-credentials: false
70+
71+
- name: Build wheels
72+
uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0
73+
with:
74+
output-dir: wheelhouse/
75+
only: ${{ matrix.python }}-manylinux_riscv64
76+
env:
77+
CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }}
78+
CIBW_ENVIRONMENT_LINUX: >-
79+
PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/
80+
PIP_ONLY_BINARY=numpy,matplotlib
81+
82+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
83+
with:
84+
name: pykvfinder-${{ env.PYKVFINDER_VERSION }}-${{ matrix.python }}-manylinux_riscv64
85+
path: wheelhouse/*.whl
86+
if-no-files-found: error
87+
88+
gpl_sources:
89+
needs: [setup]
90+
if: needs.setup.outputs.versions != '[]'
91+
strategy:
92+
fail-fast: false
93+
matrix:
94+
version: ${{ fromJSON(needs.setup.outputs.versions) }}
95+
name: Collect GPL sources (gcc) for pykvfinder ${{ matrix.version }}
96+
runs-on: ubuntu-24.04-riscv
97+
env:
98+
PYKVFINDER_VERSION: ${{ matrix.version }}
99+
100+
steps:
101+
- name: Collect gcc source RPM from manylinux_riscv64
102+
uses: riseproject-dev/python-wheels/actions/collect-gpl-sources@main
103+
with:
104+
image: ${{ env.MANYLINUX_RISCV64_IMAGE }}
105+
packages: gcc
106+
output: gpl-sources.tar
107+
108+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
109+
with:
110+
name: pykvfinder-${{ env.PYKVFINDER_VERSION }}-gpl-sources
111+
path: gpl-sources.tar
112+
if-no-files-found: error
113+
114+
publish:
115+
name: Publish pykvfinder ${{ matrix.version }}
116+
needs: [setup, build_wheels, gpl_sources]
117+
if: needs.setup.outputs.versions != '[]'
118+
strategy:
119+
fail-fast: false
120+
matrix:
121+
version: ${{ fromJSON(needs.setup.outputs.versions) }}
122+
permissions:
123+
contents: write
124+
pull-requests: write
125+
uses: $/.github/workflows/_publish-wheel.yml
126+
secrets:
127+
app-private-key: ${{ secrets.RISEPROJECT_APP_PRIVATE_KEY }}
128+
with:
129+
artifact-pattern: pykvfinder-${{ matrix.version }}-*-manylinux_riscv64
130+
gpl-sources-artifact: pykvfinder-${{ matrix.version }}-gpl-sources
131+
gpl-sources-description: gcc

‎docs/packages/pykvfinder.yaml‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package-name: pykvfinder
2+
source-code: https://github.com/LBC-LNBio/pyKVFinder
3+
license: GPL-3.0-or-later
4+
versions:
5+
- version: 0.9.5

0 commit comments

Comments
 (0)