Skip to content

release: bump Cargo.toml + lock to 0.10.0 as well #80

release: bump Cargo.toml + lock to 0.10.0 as well

release: bump Cargo.toml + lock to 0.10.0 as well #80

name: install-matrix
# Verifies `cargo install --git ... --branch cuda-only` works on the
# distros documented in the README's "Verified install matrix"
# section. Each job builds a stock distro container with the toolchain
# the README recommends, then runs `cargo install --path .` against
# the checked-out source. Catches regressions in build.rs / CMakeLists
# / Cargo.lock that pass on the dev box (Arch + RTX 4090) but break
# on the wider distro matrix.
#
# No actual GPU needed for build — nvcc compiles without one. The
# binary won't run usefully in CI, but the install reaching
# "Installed package `xchplot2`" is the assertion.
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 / user-facing scripts not exercised by the install
# matrix (CI calls `podman build` directly; these are host-side
# wrappers and runtime tests).
- 'scripts/test/**'
- 'scripts/test-multi-gpu.sh'
- 'scripts/build-container.sh'
- 'scripts/install-container-deps.sh'
# Sibling CI workflows — editing arch-matrix or the lint
# workflow shouldn't drag in the install matrix.
- '.github/workflows/ci.yml'
- '.github/workflows/arch-matrix.yml'
push:
branches: [cuda-only]
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'
- '.github/workflows/ci.yml'
- '.github/workflows/arch-matrix.yml'
permissions:
contents: read
jobs:
install:
name: install / ${{ matrix.distro }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
distro:
- ubuntu2404-rustup # apt nvidia-cuda-toolkit + rustup
- ubuntu2404-nvidia-apt # NVIDIA apt repo cuda-toolkit-12-9
- ubuntu2204-nvidia-apt # Kitware cmake + NVIDIA apt repo
- debian12-kitware # Kitware cmake + NVIDIA apt repo
- fedora41-nvidia-apt # NVIDIA dnf repo
- rocky9-nvidia-apt # NVIDIA dnf repo (RHEL 9 family)
steps:
- uses: actions/checkout@v5
- name: Build base image
run: |
podman build \
-t xchplot2-ci:${{ matrix.distro }} \
-f ci/install-matrix/${{ matrix.distro }}.Containerfile \
ci/install-matrix/
- name: cargo install in container
run: |
podman run --rm \
-e CUDA_ARCHITECTURES=75 \
-v "$PWD":/src:ro,Z \
xchplot2-ci:${{ matrix.distro }} \
bash -c '
cp -r /src /work
cd /work
rm -rf target/ keygen-rs/target/
CARGO_TARGET_DIR=/tmp/cargo-target \
cargo install --path . --force 2>&1 | tail -20
test -x /root/.cargo/bin/xchplot2
echo "OK: xchplot2 installed for ${{ matrix.distro }}"
'