Skip to content

build(deps): bump chia from 0.45.1 to 0.47.0 in /keygen-rs #83

build(deps): bump chia from 0.45.1 to 0.47.0 in /keygen-rs

build(deps): bump chia from 0.45.1 to 0.47.0 in /keygen-rs #83

Workflow file for this run

name: install-matrix
# Verifies the SYCL Containerfile builds across its documented
# backend matrix (NVIDIA / AMD / Intel / CPU). Each job exercises a
# different ACPP_TARGETS configuration via the existing production
# Containerfile — the same one users build via scripts/build-container.sh.
#
# No actual accelerator hardware needed for the build; nvcc / hipcc
# / icx etc. all compile fine without a runtime device present. The
# assertion is "the container builds clean and `xchplot2 --help`
# returns 0" — the runtime path is exercised by the parity tests
# under the existing CI workflow.
on:
pull_request:
paths-ignore:
# Docs & metadata
- '**.md'
- 'docs/**'
- 'LICENSE*'
- '.gitignore'
- '.gitattributes'
- '.editorconfig'
- '.markdownlint*'
- '.github/dependabot.yml'
- '.github/ISSUE_TEMPLATE/**'
- '.github/PULL_REQUEST_TEMPLATE*'
# Runtime scripts not exercised by the install matrix.
# scripts/install-deps.sh IS used inside Containerfile RUNs,
# so it's NOT in this list.
- 'scripts/test/**'
- 'scripts/test-multi-gpu.sh'
- 'scripts/build-container.sh'
- 'scripts/install-container-deps.sh'
# docker-compose isn't exercised by CI (we drive podman build
# directly).
- 'compose.yaml'
# Sibling CI workflows.
- '.github/workflows/ci.yml'
- '.github/workflows/arch-matrix.yml'
push:
branches: [main]
paths-ignore:
- '**.md'
- 'docs/**'
- 'LICENSE*'
- '.gitignore'
- '.gitattributes'
- '.editorconfig'
- '.markdownlint*'
- '.github/dependabot.yml'
- '.github/ISSUE_TEMPLATE/**'
- '.github/PULL_REQUEST_TEMPLATE*'
- 'scripts/test/**'
- 'scripts/test-multi-gpu.sh'
- 'scripts/build-container.sh'
- 'scripts/install-container-deps.sh'
- 'compose.yaml'
- '.github/workflows/ci.yml'
- '.github/workflows/arch-matrix.yml'
permissions:
contents: read
jobs:
build:
name: build / ${{ matrix.target.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
# NVIDIA — default base, CUDA 13.x for Turing+; sets sm_75 so
# we don't trip the preflight that bans pre-Turing on 13.x.
- name: nvidia-cuda13
extra_args: "--build-arg CUDA_ARCH=75"
# NVIDIA Pascal (sm_61) — must use the 12.9 base because
# CUDA 13.x dropped Pascal codegen. Catches preflight
# regressions.
- name: nvidia-cuda12-pascal
extra_args: >-
--build-arg BASE_DEVEL=docker.io/nvidia/cuda:12.9.1-devel-ubuntu24.04
--build-arg BASE_RUNTIME=docker.io/nvidia/cuda:12.9.1-devel-ubuntu24.04
--build-arg CUDA_ARCH=61
# CPU-only — AdaptiveCpp OpenMP backend. No CUDA toolkit in
# the runtime image; build still wants cuda_fp16.h headers,
# supplied by INSTALL_CUDA_HEADERS=1.
- name: cpu-omp
extra_args: >-
--build-arg BASE_DEVEL=docker.io/ubuntu:24.04
--build-arg BASE_RUNTIME=docker.io/ubuntu:24.04
--build-arg ACPP_TARGETS=omp
--build-arg XCHPLOT2_BUILD_CUDA=OFF
--build-arg INSTALL_CUDA_HEADERS=1
# AMD ROCm — AdaptiveCpp generic (SSCP JIT). Two reasons for
# `generic` instead of `hip:gfxNNNN` AOT compilation in CI:
#
# 1. rocm/dev-ubuntu-24.04:latest ships device bitcode
# (ocml.bc) built with rolling LLVM 22+. AdaptiveCpp's
# install-deps.sh pins clang/lld to LLVM 18 for
# compatibility with its own build. The LLVM-18 clang
# can't link bitcode produced by LLVM-22 (attribute
# kind 102 added in LLVM 22) — hard build error.
#
# 2. CI has no AMD GPU anyway, so AOT-for-gfxNNNN doesn't
# give us runtime signal. SSCP defers device codegen
# to runtime, lets the build prove "the SYCL TUs
# compile against ROCm headers + libs" which is the
# meaningful CI assertion.
#
# Same pattern the README recommends for RDNA1 cards
# (gfx101x) and matches the Intel oneAPI entry below.
- name: amd-rocm
extra_args: >-
--build-arg BASE_DEVEL=docker.io/rocm/dev-ubuntu-24.04:latest
--build-arg BASE_RUNTIME=docker.io/rocm/dev-ubuntu-24.04:latest
--build-arg ACPP_TARGETS=generic
--build-arg XCHPLOT2_BUILD_CUDA=OFF
--build-arg INSTALL_CUDA_HEADERS=1
# Intel oneAPI — AdaptiveCpp generic (SSCP) → Level Zero.
# README flags this path as experimental / not perf-tested;
# CI's role is "the build still works", not "it runs well".
- name: intel-oneapi
extra_args: >-
--build-arg BASE_DEVEL=docker.io/intel/oneapi-basekit:latest
--build-arg BASE_RUNTIME=docker.io/intel/oneapi-runtime:latest
--build-arg ACPP_TARGETS=generic
--build-arg XCHPLOT2_BUILD_CUDA=OFF
--build-arg INSTALL_CUDA_HEADERS=1
steps:
- uses: actions/checkout@v7
- name: podman build (${{ matrix.target.name }})
run: |
podman build -t xchplot2-ci:${{ matrix.target.name }} \
${{ matrix.target.extra_args }} \
-f Containerfile .
- name: xchplot2 --help inside image
run: |
podman run --rm xchplot2-ci:${{ matrix.target.name }} \
xchplot2 devices 2>&1 | head -10 || true
# `devices` may fail without a real GPU; that's fine — what
# we check is the binary runs at all (no library-load errors
# like missing libcudart, missing libacpp-rt, etc.)
podman run --rm --entrypoint /bin/sh \
xchplot2-ci:${{ matrix.target.name }} \
-c 'which xchplot2 && ldd $(which xchplot2) | head -20'