Skip to content

Expand CI matrix to 5 distros - #5

Merged
stonelyd merged 15 commits into
mainfrom
feat/expand-distro-matrix
Mar 31, 2026
Merged

Expand CI matrix to 5 distros#5
stonelyd merged 15 commits into
mainfrom
feat/expand-distro-matrix

Conversation

@stonelyd

Copy link
Copy Markdown
Contributor

Summary

  • Expand CI test matrix from Ubuntu 24.04 only to all 5 RyuSim-supported distros: Ubuntu 22.04, Ubuntu 24.04, Debian 12, Rocky 9, Fedora 40
  • Non-Ubuntu distros run in official Docker containers on ubuntu-latest runners
  • Applied to all three workflows: benchmarks, sv-tests, and nightly

Test plan

🤖 Generated with Claude Code

davidstonely and others added 15 commits March 23, 2026 00:10
…ocky 9, Fedora 40)

Match the RyuSim release matrix by testing on all supported distros.
Non-Ubuntu distros run in official Docker containers on ubuntu-latest runners.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rocky 9: ninja-build is in CRB repo, not base. Enable CRB after EPEL.
Fedora 40 & Rocky 9: RyuSim binary links against librtmp.so.1 at runtime.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The librtmp.so.1 dependency is a RyuSim build-side issue, not
something the validation repo should paper over.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove curl from Rocky 9/Fedora 40 (curl-minimal already in image)
- Remove librtmp and verilator from container distros (not needed)
- Only install what RyuSim actually requires: python3, cmake, clang, git

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Re-add verilator to all container distros (needed for benchmarks/VCD comparison)
- Use per-distro pip_flags matrix variable instead of blanket container check
- Rocky 9 (Python 3.9) doesn't support --break-system-packages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
cocotb's C++ extensions link with -static-libstdc++ which requires
libstdc++-static on Rocky 9.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
cocotb's pip build compiles C extensions that need Python.h headers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Since bundled libraries were removed from the RyuSim tarball, each distro
needs development packages installed for the generated simulation code to
link successfully.

Fixes:
- Rocky 9: add zlib-devel, openssl-devel (linker cannot find -lz)
- Fedora 40: add python3-devel, libstdc++-devel, zlib-devel, openssl-devel
  (cocotb build fails: cannot find -lstdc++)
- Debian 12: add python3-dev, zlib1g-dev, libssl-dev
- Ubuntu 22.04: add PPA for libstdc++-13-dev (GLIBCXX_3.4.31/32 not found),
  plus zlib1g-dev, libssl-dev

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… for Fedora

- Move native Ubuntu system deps step before Install RyuSim so
  libstdc++-13-dev is available when the installer verifies the binary
  (Ubuntu 22.04 needs GLIBCXX_3.4.31/32)
- Add libstdc++-static to Fedora 40 packages (cocotb's g++ link needs
  -lstdc++ which requires the static lib on Fedora)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Increased timeout for C910 compilation on CI runners.
Vortex failed on Debian 12 and Ubuntu 22.04 because the system Clang 14
was used to compile RyuSim-generated C++, while RyuSim itself was built
with Clang 18. Install Clang 18 from apt.llvm.org on both platforms to
match the build environment.

Also remove push/PR triggers from benchmarks and sv-tests workflows,
keeping only workflow_dispatch.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…into feat/expand-distro-matrix

# Conflicts:
#	.github/workflows/benchmarks.yml
Default 900s timeout is too tight for Debian 12 container runners.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@stonelyd
stonelyd merged commit 6a3e6af into main Mar 31, 2026
5 checks passed
@stonelyd
stonelyd deleted the feat/expand-distro-matrix branch March 31, 2026 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants