Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions .github/workflows/build-islpy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# SPDX-FileCopyrightText: 2026 The RISE Project
# SPDX-License-Identifier: MIT
---
# This workflow is based on: https://github.com/inducer/islpy/blob/v2026.2.1/.github/workflows/wheels.yml
name: Build islpy wheels (riscv64)

on:
workflow_dispatch:
inputs:
version:
description: 'islpy version to build (git tag without leading v, e.g. 2026.2.1)'
required: true
default: '2026.2.1'
pull_request:
paths:
- '.github/workflows/build-islpy.yml'

concurrency:
group: ${{ github.workflow }}-${{ inputs.version || '2026.2.1' }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

permissions:
contents: read # to fetch code (actions/checkout)

env:
# `inputs.version` is empty on pull_request events; default to 2026.2.1 there.
ISLPY_VERSION: ${{ inputs.version || '2026.2.1' }}
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

build_wheels:
needs: [setup]
name: Build islpy ${{ inputs.version || '2026.2.1' }} ${{ matrix.python }}-${{ matrix.libc }}_riscv64
runs-on: ubuntu-24.04-riscv
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
# cp314t dropped: upstream's own cibuildwheel skip list excludes all
# free-threaded builds ('cp31?t-*').
python: ["cp312", "cp313", "cp314"]
libc: [manylinux, musllinux]

steps:
- name: Checkout islpy v${{ env.ISLPY_VERSION }}
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: inducer/islpy
ref: v${{ env.ISLPY_VERSION }}
submodules: recursive
persist-credentials: false

- name: Build wheels
uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0
with:
output-dir: wheelhouse/
only: ${{ matrix.python }}-${{ matrix.libc }}_riscv64
env:
CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }}
CIBW_MUSLLINUX_RISCV64_IMAGE: ${{ env.MUSLLINUX_RISCV64_IMAGE }}

- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: islpy-${{ env.ISLPY_VERSION }}-${{ matrix.python }}-${{ matrix.libc }}_riscv64
path: wheelhouse/*.whl
if-no-files-found: error

publish:
name: Publish islpy ${{ inputs.version || '2026.2.1' }}
needs: [setup, build_wheels]
permissions:
contents: write
pull-requests: write
uses: $/.github/workflows/_publish-wheel.yml
with:
artifact-pattern: islpy-${{ inputs.version || '2026.2.1' }}-*riscv64