Skip to content

css-inline: Add version 0.23.0 #401

css-inline: Add version 0.23.0

css-inline: Add version 0.23.0 #401

Workflow file for this run

# SPDX-FileCopyrightText: 2026 The RISE Project

Check failure on line 1 in .github/workflows/build-tcod.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/build-tcod.yml

Invalid workflow file

(Line: 49, Col: 11): Unrecognized named-value: 'env'. Located at position 1 within expression: env.ABI3_FLOOR
# SPDX-License-Identifier: MIT
---
# This workflow is based on the `linux-wheels` job of
# https://github.com/libtcod/python-tcod/blob/21.2.1/.github/workflows/python-package.yml
name: Build tcod wheels (riscv64)
on:
workflow_dispatch:
inputs:
version:
description: 'Version glob to (re)build; empty builds every version of docs/packages/tcod.yaml not released yet'
required: false
default: ''
pull_request:
branches: [main]
paths:
- '.github/workflows/build-tcod.yml'
- 'docs/packages/tcod.yaml'
push:
branches: [main]
paths:
- '.github/workflows/build-tcod.yml'
- 'docs/packages/tcod.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
# py_limited_api=0x03100000 in build_libtcod.py: the one abi3 wheel built on
# the floor interpreter also loads on every newer non-free-threaded CPython.
ABI3_FLOOR: cp310
jobs:
setup:
uses: $/.github/workflows/_setup.yml
with:
package: tcod
version: ${{ inputs.version }}
build_abi3:
needs: [setup]
if: needs.setup.outputs.versions != '[]'
name: Build tcod ${{ matrix.version }} ${{ env.ABI3_FLOOR }}-abi3-manylinux_riscv64
runs-on: ubuntu-24.04-riscv
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
version: ${{ fromJSON(needs.setup.outputs.versions) }}
env:
TCOD_VERSION: ${{ matrix.version }}
steps:
- name: Checkout tcod ${{ env.TCOD_VERSION }}
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: libtcod/python-tcod
ref: ${{ env.TCOD_VERSION }}
submodules: recursive
fetch-depth: 0
persist-credentials: false
- name: Build and test wheels
uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0
env:
CIBW_ARCHS: riscv64
CIBW_BUILD: cp310-* cp311-* cp312-* cp313-* cp314-*
CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }}
# Upstream's own before-all, minus epel-release (gotcha 51: EPEL is
# empty on riscv64, a no-op) and minus vulkan-devel/libXScrnSaver-devel
# (no riscv64 package; SDL's cmake auto-detects their absence and
# disables the matching optional backend instead of failing).
CIBW_BEFORE_ALL_LINUX: >-
dnf install -y -q
gcc git cmake make pkgconfig
alsa-lib-devel pulseaudio-libs-devel
libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel
dbus-devel ibus-devel systemd-devel
mesa-libGL-devel mesa-libEGL-devel mesa-libGLES-devel libxkbcommon-devel
wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libusb1-devel &&
git clone --depth 1 --branch release-3.2.16 https://github.com/libsdl-org/SDL.git /tmp/sdl &&
cmake -S /tmp/sdl -B /tmp/sdl-build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON &&
cmake --build /tmp/sdl-build --config Release -j$(nproc) &&
cmake --install /tmp/sdl-build --config Release --prefix /usr/local &&
cp /usr/local/lib64/pkgconfig/sdl3.pc /lib64/pkgconfig/sdl3.pc
CIBW_ENVIRONMENT: >-
PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/
PIP_ONLY_BINARY=numpy
CIBW_BEFORE_TEST: pip install numpy
CIBW_TEST_COMMAND: python -c "import tcod.context"
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: tcod-${{ env.TCOD_VERSION }}-${{ env.ABI3_FLOOR }}-abi3-manylinux_riscv64
path: wheelhouse/*.whl
if-no-files-found: error
build_freethreaded:
needs: [setup]
if: needs.setup.outputs.versions != '[]'
name: Build tcod ${{ matrix.version }} cp314t-manylinux_riscv64
runs-on: ubuntu-24.04-riscv
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
version: ${{ fromJSON(needs.setup.outputs.versions) }}
env:
TCOD_VERSION: ${{ matrix.version }}
steps:
- name: Checkout tcod ${{ env.TCOD_VERSION }}
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: libtcod/python-tcod
ref: ${{ env.TCOD_VERSION }}
submodules: recursive
fetch-depth: 0
persist-credentials: false
- name: Build and test wheels
uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0
env:
CIBW_ARCHS: riscv64
CIBW_BUILD: cp314t-*
CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }}
CIBW_BEFORE_ALL_LINUX: >-
dnf install -y -q
gcc git cmake make pkgconfig
alsa-lib-devel pulseaudio-libs-devel
libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel libXi-devel
dbus-devel ibus-devel systemd-devel
mesa-libGL-devel mesa-libEGL-devel mesa-libGLES-devel libxkbcommon-devel
wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel libusb1-devel &&
git clone --depth 1 --branch release-3.2.16 https://github.com/libsdl-org/SDL.git /tmp/sdl &&
cmake -S /tmp/sdl -B /tmp/sdl-build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON &&
cmake --build /tmp/sdl-build --config Release -j$(nproc) &&
cmake --install /tmp/sdl-build --config Release --prefix /usr/local &&
cp /usr/local/lib64/pkgconfig/sdl3.pc /lib64/pkgconfig/sdl3.pc
CIBW_ENVIRONMENT: >-
PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/
PIP_ONLY_BINARY=numpy
CIBW_BEFORE_TEST: pip install numpy
CIBW_TEST_COMMAND: python -c "import tcod.context"
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: tcod-${{ env.TCOD_VERSION }}-cp314t-manylinux_riscv64
path: wheelhouse/*.whl
if-no-files-found: error
publish:
name: Publish tcod ${{ matrix.version }}
needs: [setup, build_abi3, build_freethreaded]
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: tcod-${{ matrix.version }}-*-manylinux_riscv64