From 93036fdf2d5a04318359007106397c990e5a764d Mon Sep 17 00:00:00 2001 From: David Stonely Date: Mon, 23 Mar 2026 00:10:18 -0400 Subject: [PATCH 01/14] feat: expand CI matrix to 5 distros (Ubuntu 22.04/24.04, Debian 12, Rocky 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) --- .github/workflows/benchmarks.yml | 51 ++++++++++++++++++++++++------ .github/workflows/nightly.yml | 53 ++++++++++++++++++++++++++------ .github/workflows/sv-tests.yml | 53 ++++++++++++++++++++++++++------ 3 files changed, 128 insertions(+), 29 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 063d6c7..1752059 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -24,36 +24,69 @@ jobs: benchmark: timeout-minutes: 120 runs-on: ${{ matrix.os }} + container: ${{ matrix.container || '' }} strategy: + fail-fast: false matrix: - os: [ubuntu-24.04] - python-version: ["3.11"] + include: + - distro: ubuntu-24.04 + os: ubuntu-24.04 + - distro: ubuntu-22.04 + os: ubuntu-22.04 + - distro: debian-12 + os: ubuntu-latest + container: debian:12 + - distro: rocky-9 + os: ubuntu-latest + container: rockylinux:9 + - distro: fedora-40 + os: ubuntu-latest + container: fedora:40 steps: + - name: Install base packages (Debian/Ubuntu container) + if: matrix.container == 'debian:12' + run: | + apt-get update + apt-get install -y python3 python3-pip python3-venv git curl cmake ninja-build clang verilator ca-certificates + + - name: Install base packages (Rocky 9) + if: matrix.container == 'rockylinux:9' + run: | + dnf install -y epel-release + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates + + - name: Install base packages (Fedora 40) + if: matrix.container == 'fedora:40' + run: | + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator ca-certificates + - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} + - name: Set up Python (native runners) + if: ${{ !matrix.container }} uses: actions/setup-python@v5 with: - python-version: ${{ matrix.python-version }} + python-version: "3.11" - name: Install RyuSim - run: sudo bash setup_ryusim.sh + run: bash setup_ryusim.sh env: RYUSIM_VERSION: ${{ inputs.ryusim_version }} - name: Install Python dependencies - run: pip install -r requirements.txt + run: pip install ${{ matrix.container && '--break-system-packages' || '' }} -r requirements.txt - - name: Install system dependencies + - name: Install system dependencies (native Ubuntu) + if: ${{ !matrix.container }} run: sudo apt-get update && sudo apt-get install -y cmake ninja-build clang verilator - name: Run benchmarks - run: python -u run_benchmarks.py --all --verbose --output results/benchmarks-${{ matrix.os }}.json + run: python3 -u run_benchmarks.py --all --verbose --output results/benchmarks-${{ matrix.distro }}.json - name: Upload benchmark results uses: actions/upload-artifact@v4 with: - name: benchmark-results-${{ matrix.os }} + name: benchmark-results-${{ matrix.distro }} path: results/ retention-days: 30 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 079a9ef..12873fa 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -13,39 +13,72 @@ on: jobs: validate: runs-on: ${{ matrix.os }} + container: ${{ matrix.container || '' }} strategy: + fail-fast: false matrix: - os: [ubuntu-24.04] - python-version: ["3.11"] + include: + - distro: ubuntu-24.04 + os: ubuntu-24.04 + - distro: ubuntu-22.04 + os: ubuntu-22.04 + - distro: debian-12 + os: ubuntu-latest + container: debian:12 + - distro: rocky-9 + os: ubuntu-latest + container: rockylinux:9 + - distro: fedora-40 + os: ubuntu-latest + container: fedora:40 steps: + - name: Install base packages (Debian 12) + if: matrix.container == 'debian:12' + run: | + apt-get update + apt-get install -y python3 python3-pip python3-venv git curl cmake ninja-build clang verilator ca-certificates + + - name: Install base packages (Rocky 9) + if: matrix.container == 'rockylinux:9' + run: | + dnf install -y epel-release + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates + + - name: Install base packages (Fedora 40) + if: matrix.container == 'fedora:40' + run: | + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator ca-certificates + - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} + - name: Set up Python (native runners) + if: ${{ !matrix.container }} uses: actions/setup-python@v5 with: - python-version: ${{ matrix.python-version }} + python-version: "3.11" - name: Install RyuSim - run: sudo bash setup_ryusim.sh + run: bash setup_ryusim.sh env: RYUSIM_VERSION: ${{ inputs.ryusim_version }} - name: Install Python dependencies - run: pip install -r requirements.txt + run: pip install ${{ matrix.container && '--break-system-packages' || '' }} -r requirements.txt - - name: Install system dependencies + - name: Install system dependencies (native Ubuntu) + if: ${{ !matrix.container }} run: sudo apt-get update && sudo apt-get install -y cmake ninja-build clang verilator - name: Run benchmarks - run: python -u run_benchmarks.py --all --verbose --output results/benchmarks-nightly-${{ matrix.os }}.json + run: python3 -u run_benchmarks.py --all --verbose --output results/benchmarks-nightly-${{ matrix.distro }}.json - name: Run SV construct tests - run: python -u run_tests.py --all --level 2 --verbose --output results/sv-tests-nightly-${{ matrix.os }}.json + run: python3 -u run_tests.py --all --level 2 --verbose --output results/sv-tests-nightly-${{ matrix.distro }}.json - name: Upload nightly results uses: actions/upload-artifact@v4 with: - name: nightly-results-${{ matrix.os }} + name: nightly-results-${{ matrix.distro }} path: results/ retention-days: 30 diff --git a/.github/workflows/sv-tests.yml b/.github/workflows/sv-tests.yml index 57b4c37..c4915cb 100644 --- a/.github/workflows/sv-tests.yml +++ b/.github/workflows/sv-tests.yml @@ -21,41 +21,74 @@ on: jobs: test: runs-on: ${{ matrix.os }} + container: ${{ matrix.container || '' }} strategy: + fail-fast: false matrix: - os: [ubuntu-24.04] - python-version: ["3.11"] + include: + - distro: ubuntu-24.04 + os: ubuntu-24.04 + - distro: ubuntu-22.04 + os: ubuntu-22.04 + - distro: debian-12 + os: ubuntu-latest + container: debian:12 + - distro: rocky-9 + os: ubuntu-latest + container: rockylinux:9 + - distro: fedora-40 + os: ubuntu-latest + container: fedora:40 steps: + - name: Install base packages (Debian 12) + if: matrix.container == 'debian:12' + run: | + apt-get update + apt-get install -y python3 python3-pip python3-venv git curl cmake ninja-build clang verilator ca-certificates + + - name: Install base packages (Rocky 9) + if: matrix.container == 'rockylinux:9' + run: | + dnf install -y epel-release + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates + + - name: Install base packages (Fedora 40) + if: matrix.container == 'fedora:40' + run: | + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator ca-certificates + - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} + - name: Set up Python (native runners) + if: ${{ !matrix.container }} uses: actions/setup-python@v5 with: - python-version: ${{ matrix.python-version }} + python-version: "3.11" - name: Install RyuSim - run: sudo bash setup_ryusim.sh + run: bash setup_ryusim.sh env: RYUSIM_VERSION: ${{ inputs.ryusim_version }} - name: Install Python dependencies - run: pip install -r requirements.txt + run: pip install ${{ matrix.container && '--break-system-packages' || '' }} -r requirements.txt - - name: Install system dependencies + - name: Install system dependencies (native Ubuntu) + if: ${{ !matrix.container }} run: sudo apt-get update && sudo apt-get install -y cmake ninja-build clang verilator - name: Run SV construct tests run: | if [ "${{ inputs.category }}" = "all" ] || [ -z "${{ inputs.category }}" ]; then - python -u run_tests.py --all --level 1 --verbose --output results/sv-tests-${{ matrix.os }}.json + python3 -u run_tests.py --all --level 1 --verbose --output results/sv-tests-${{ matrix.distro }}.json else - python -u run_tests.py --category ${{ inputs.category }} --level 1 --verbose --output results/sv-tests-${{ matrix.os }}.json + python3 -u run_tests.py --category ${{ inputs.category }} --level 1 --verbose --output results/sv-tests-${{ matrix.distro }}.json fi - name: Upload test results uses: actions/upload-artifact@v4 with: - name: sv-test-results-${{ matrix.os }} + name: sv-test-results-${{ matrix.distro }} path: results/ retention-days: 30 From 9cc6fed7d699ef897f68e24fe8ae64ff99bf75f0 Mon Sep 17 00:00:00 2001 From: David Stonely Date: Mon, 23 Mar 2026 00:13:36 -0400 Subject: [PATCH 02/14] fix: Rocky 9 enable CRB for ninja-build, add librtmp for Fedora/Rocky 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) --- .github/workflows/benchmarks.yml | 5 +++-- .github/workflows/nightly.yml | 5 +++-- .github/workflows/sv-tests.yml | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 1752059..fd42abf 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -53,12 +53,13 @@ jobs: if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates + /usr/bin/crb enable + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make librtmp ca-certificates - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator ca-certificates + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator librtmp ca-certificates - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 12873fa..0425368 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -42,12 +42,13 @@ jobs: if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates + /usr/bin/crb enable + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make librtmp ca-certificates - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator ca-certificates + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator librtmp ca-certificates - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/sv-tests.yml b/.github/workflows/sv-tests.yml index c4915cb..1be85d0 100644 --- a/.github/workflows/sv-tests.yml +++ b/.github/workflows/sv-tests.yml @@ -50,12 +50,13 @@ jobs: if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates + /usr/bin/crb enable + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make librtmp ca-certificates - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator ca-certificates + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator librtmp ca-certificates - name: Checkout repository uses: actions/checkout@v4 From b6e0abbb2ac849ca7ec800ff80f553bfe1889f85 Mon Sep 17 00:00:00 2001 From: David Stonely Date: Mon, 23 Mar 2026 00:22:11 -0400 Subject: [PATCH 03/14] fix: remove librtmp from container packages (RyuSim packaging issue) 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) --- .github/workflows/benchmarks.yml | 2 +- .github/workflows/nightly.yml | 2 +- .github/workflows/sv-tests.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index fd42abf..4cb8ced 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -54,7 +54,7 @@ jobs: run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make librtmp ca-certificates + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 0425368..181891b 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -43,7 +43,7 @@ jobs: run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make librtmp ca-certificates + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' diff --git a/.github/workflows/sv-tests.yml b/.github/workflows/sv-tests.yml index 1be85d0..6a22de0 100644 --- a/.github/workflows/sv-tests.yml +++ b/.github/workflows/sv-tests.yml @@ -51,7 +51,7 @@ jobs: run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make librtmp ca-certificates + dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' From 05108246c1dba7ebd14c8e7ad90f1f4c8ce09c4d Mon Sep 17 00:00:00 2001 From: David Stonely Date: Mon, 23 Mar 2026 00:25:46 -0400 Subject: [PATCH 04/14] fix: clean up container package lists - 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) --- .github/workflows/benchmarks.yml | 8 ++++---- .github/workflows/nightly.yml | 6 +++--- .github/workflows/sv-tests.yml | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 4cb8ced..de5cfe2 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -43,23 +43,23 @@ jobs: os: ubuntu-latest container: fedora:40 steps: - - name: Install base packages (Debian/Ubuntu container) + - name: Install base packages (Debian 12) if: matrix.container == 'debian:12' run: | apt-get update - apt-get install -y python3 python3-pip python3-venv git curl cmake ninja-build clang verilator ca-certificates + apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang - name: Install base packages (Rocky 9) if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator librtmp ca-certificates + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 181891b..1c1ce18 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -36,19 +36,19 @@ jobs: if: matrix.container == 'debian:12' run: | apt-get update - apt-get install -y python3 python3-pip python3-venv git curl cmake ninja-build clang verilator ca-certificates + apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang - name: Install base packages (Rocky 9) if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator librtmp ca-certificates + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/sv-tests.yml b/.github/workflows/sv-tests.yml index 6a22de0..f022bc5 100644 --- a/.github/workflows/sv-tests.yml +++ b/.github/workflows/sv-tests.yml @@ -44,19 +44,19 @@ jobs: if: matrix.container == 'debian:12' run: | apt-get update - apt-get install -y python3 python3-pip python3-venv git curl cmake ninja-build clang verilator ca-certificates + apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang - name: Install base packages (Rocky 9) if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make ca-certificates + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git curl cmake ninja-build clang gcc gcc-c++ make verilator librtmp ca-certificates + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make - name: Checkout repository uses: actions/checkout@v4 From dc31452a767093c91dca4e0bb911e16d7aa0369f Mon Sep 17 00:00:00 2001 From: David Stonely Date: Mon, 23 Mar 2026 23:25:31 -0400 Subject: [PATCH 05/14] fix: add verilator back to containers, fix pip flags for Rocky 9 - 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) --- .github/workflows/benchmarks.yml | 10 ++++++---- .github/workflows/nightly.yml | 10 ++++++---- .github/workflows/sv-tests.yml | 10 ++++++---- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index de5cfe2..b681aa5 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -36,30 +36,32 @@ jobs: - distro: debian-12 os: ubuntu-latest container: debian:12 + pip_flags: "--break-system-packages" - distro: rocky-9 os: ubuntu-latest container: rockylinux:9 - distro: fedora-40 os: ubuntu-latest container: fedora:40 + pip_flags: "--break-system-packages" steps: - name: Install base packages (Debian 12) if: matrix.container == 'debian:12' run: | apt-get update - apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang + apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang verilator - name: Install base packages (Rocky 9) if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator - name: Checkout repository uses: actions/checkout@v4 @@ -76,7 +78,7 @@ jobs: RYUSIM_VERSION: ${{ inputs.ryusim_version }} - name: Install Python dependencies - run: pip install ${{ matrix.container && '--break-system-packages' || '' }} -r requirements.txt + run: pip install ${{ matrix.pip_flags || '' }} -r requirements.txt - name: Install system dependencies (native Ubuntu) if: ${{ !matrix.container }} diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1c1ce18..d58de7b 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -25,30 +25,32 @@ jobs: - distro: debian-12 os: ubuntu-latest container: debian:12 + pip_flags: "--break-system-packages" - distro: rocky-9 os: ubuntu-latest container: rockylinux:9 - distro: fedora-40 os: ubuntu-latest container: fedora:40 + pip_flags: "--break-system-packages" steps: - name: Install base packages (Debian 12) if: matrix.container == 'debian:12' run: | apt-get update - apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang + apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang verilator - name: Install base packages (Rocky 9) if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator - name: Checkout repository uses: actions/checkout@v4 @@ -65,7 +67,7 @@ jobs: RYUSIM_VERSION: ${{ inputs.ryusim_version }} - name: Install Python dependencies - run: pip install ${{ matrix.container && '--break-system-packages' || '' }} -r requirements.txt + run: pip install ${{ matrix.pip_flags || '' }} -r requirements.txt - name: Install system dependencies (native Ubuntu) if: ${{ !matrix.container }} diff --git a/.github/workflows/sv-tests.yml b/.github/workflows/sv-tests.yml index f022bc5..dc04726 100644 --- a/.github/workflows/sv-tests.yml +++ b/.github/workflows/sv-tests.yml @@ -33,30 +33,32 @@ jobs: - distro: debian-12 os: ubuntu-latest container: debian:12 + pip_flags: "--break-system-packages" - distro: rocky-9 os: ubuntu-latest container: rockylinux:9 - distro: fedora-40 os: ubuntu-latest container: fedora:40 + pip_flags: "--break-system-packages" steps: - name: Install base packages (Debian 12) if: matrix.container == 'debian:12' run: | apt-get update - apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang + apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang verilator - name: Install base packages (Rocky 9) if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator - name: Checkout repository uses: actions/checkout@v4 @@ -73,7 +75,7 @@ jobs: RYUSIM_VERSION: ${{ inputs.ryusim_version }} - name: Install Python dependencies - run: pip install ${{ matrix.container && '--break-system-packages' || '' }} -r requirements.txt + run: pip install ${{ matrix.pip_flags || '' }} -r requirements.txt - name: Install system dependencies (native Ubuntu) if: ${{ !matrix.container }} From 44f5f9bd2ebbb69115310381f7897bc9edf52c95 Mon Sep 17 00:00:00 2001 From: David Stonely Date: Mon, 23 Mar 2026 23:28:52 -0400 Subject: [PATCH 06/14] fix: add libstdc++-static for Rocky 9 cocotb build cocotb's C++ extensions link with -static-libstdc++ which requires libstdc++-static on Rocky 9. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/benchmarks.yml | 2 +- .github/workflows/nightly.yml | 2 +- .github/workflows/sv-tests.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index b681aa5..d23d23e 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -56,7 +56,7 @@ jobs: run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d58de7b..40351fc 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -45,7 +45,7 @@ jobs: run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' diff --git a/.github/workflows/sv-tests.yml b/.github/workflows/sv-tests.yml index dc04726..b7287b4 100644 --- a/.github/workflows/sv-tests.yml +++ b/.github/workflows/sv-tests.yml @@ -53,7 +53,7 @@ jobs: run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator + dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' From eee144cf38d80b642c92a3827ec2fb836c886359 Mon Sep 17 00:00:00 2001 From: David Stonely Date: Wed, 25 Mar 2026 03:57:09 -0400 Subject: [PATCH 07/14] fix: add python3-devel to Rocky 9 for cocotb C extension build cocotb's pip build compiles C extensions that need Python.h headers. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/benchmarks.yml | 2 +- .github/workflows/nightly.yml | 2 +- .github/workflows/sv-tests.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index d23d23e..99712eb 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -56,7 +56,7 @@ jobs: run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 40351fc..43f66c2 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -45,7 +45,7 @@ jobs: run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' diff --git a/.github/workflows/sv-tests.yml b/.github/workflows/sv-tests.yml index b7287b4..59064f5 100644 --- a/.github/workflows/sv-tests.yml +++ b/.github/workflows/sv-tests.yml @@ -53,7 +53,7 @@ jobs: run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' From def46038e2fc32c4b5b5d1c5acd851026913c259 Mon Sep 17 00:00:00 2001 From: David Stonely Date: Fri, 27 Mar 2026 04:08:54 -0400 Subject: [PATCH 08/14] fix(ci): add missing dev packages for all distros 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) --- .github/workflows/benchmarks.yml | 11 +++++++---- .github/workflows/nightly.yml | 11 +++++++---- .github/workflows/sv-tests.yml | 11 +++++++---- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 99712eb..637fe25 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -49,19 +49,19 @@ jobs: if: matrix.container == 'debian:12' run: | apt-get update - apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang verilator + apt-get install -y python3 python3-pip python3-dev python3-venv git curl ca-certificates cmake ninja-build clang verilator zlib1g-dev libssl-dev - name: Install base packages (Rocky 9) if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static zlib-devel openssl-devel - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel zlib-devel openssl-devel - name: Checkout repository uses: actions/checkout@v4 @@ -82,7 +82,10 @@ jobs: - name: Install system dependencies (native Ubuntu) if: ${{ !matrix.container }} - run: sudo apt-get update && sudo apt-get install -y cmake ninja-build clang verilator + run: | + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true + sudo apt-get update + sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev - name: Run benchmarks run: python3 -u run_benchmarks.py --all --verbose --output results/benchmarks-${{ matrix.distro }}.json diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 43f66c2..19e6283 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -38,19 +38,19 @@ jobs: if: matrix.container == 'debian:12' run: | apt-get update - apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang verilator + apt-get install -y python3 python3-pip python3-dev python3-venv git curl ca-certificates cmake ninja-build clang verilator zlib1g-dev libssl-dev - name: Install base packages (Rocky 9) if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static zlib-devel openssl-devel - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel zlib-devel openssl-devel - name: Checkout repository uses: actions/checkout@v4 @@ -71,7 +71,10 @@ jobs: - name: Install system dependencies (native Ubuntu) if: ${{ !matrix.container }} - run: sudo apt-get update && sudo apt-get install -y cmake ninja-build clang verilator + run: | + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true + sudo apt-get update + sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev - name: Run benchmarks run: python3 -u run_benchmarks.py --all --verbose --output results/benchmarks-nightly-${{ matrix.distro }}.json diff --git a/.github/workflows/sv-tests.yml b/.github/workflows/sv-tests.yml index 59064f5..5e5891f 100644 --- a/.github/workflows/sv-tests.yml +++ b/.github/workflows/sv-tests.yml @@ -46,19 +46,19 @@ jobs: if: matrix.container == 'debian:12' run: | apt-get update - apt-get install -y python3 python3-pip python3-venv git curl ca-certificates cmake ninja-build clang verilator + apt-get install -y python3 python3-pip python3-dev python3-venv git curl ca-certificates cmake ninja-build clang verilator zlib1g-dev libssl-dev - name: Install base packages (Rocky 9) if: matrix.container == 'rockylinux:9' run: | dnf install -y epel-release /usr/bin/crb enable - dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-static zlib-devel openssl-devel - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel zlib-devel openssl-devel - name: Checkout repository uses: actions/checkout@v4 @@ -79,7 +79,10 @@ jobs: - name: Install system dependencies (native Ubuntu) if: ${{ !matrix.container }} - run: sudo apt-get update && sudo apt-get install -y cmake ninja-build clang verilator + run: | + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true + sudo apt-get update + sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev - name: Run SV construct tests run: | From ab39c2eba1efc76bcc59b9fed40ca7c5e3ad6521 Mon Sep 17 00:00:00 2001 From: David Stonely Date: Fri, 27 Mar 2026 04:15:03 -0400 Subject: [PATCH 09/14] fix(ci): move system deps before RyuSim install, add libstdc++-static 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) --- .github/workflows/benchmarks.yml | 16 ++++++++-------- .github/workflows/nightly.yml | 16 ++++++++-------- .github/workflows/sv-tests.yml | 16 ++++++++-------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 637fe25..aa580fe 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -61,7 +61,7 @@ jobs: - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel zlib-devel openssl-devel + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel libstdc++-static zlib-devel openssl-devel - name: Checkout repository uses: actions/checkout@v4 @@ -72,6 +72,13 @@ jobs: with: python-version: "3.11" + - name: Install system dependencies (native Ubuntu) + if: ${{ !matrix.container }} + run: | + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true + sudo apt-get update + sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev + - name: Install RyuSim run: bash setup_ryusim.sh env: @@ -80,13 +87,6 @@ jobs: - name: Install Python dependencies run: pip install ${{ matrix.pip_flags || '' }} -r requirements.txt - - name: Install system dependencies (native Ubuntu) - if: ${{ !matrix.container }} - run: | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true - sudo apt-get update - sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev - - name: Run benchmarks run: python3 -u run_benchmarks.py --all --verbose --output results/benchmarks-${{ matrix.distro }}.json diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 19e6283..88c815a 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -50,7 +50,7 @@ jobs: - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel zlib-devel openssl-devel + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel libstdc++-static zlib-devel openssl-devel - name: Checkout repository uses: actions/checkout@v4 @@ -61,6 +61,13 @@ jobs: with: python-version: "3.11" + - name: Install system dependencies (native Ubuntu) + if: ${{ !matrix.container }} + run: | + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true + sudo apt-get update + sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev + - name: Install RyuSim run: bash setup_ryusim.sh env: @@ -69,13 +76,6 @@ jobs: - name: Install Python dependencies run: pip install ${{ matrix.pip_flags || '' }} -r requirements.txt - - name: Install system dependencies (native Ubuntu) - if: ${{ !matrix.container }} - run: | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true - sudo apt-get update - sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev - - name: Run benchmarks run: python3 -u run_benchmarks.py --all --verbose --output results/benchmarks-nightly-${{ matrix.distro }}.json diff --git a/.github/workflows/sv-tests.yml b/.github/workflows/sv-tests.yml index 5e5891f..eec17c6 100644 --- a/.github/workflows/sv-tests.yml +++ b/.github/workflows/sv-tests.yml @@ -58,7 +58,7 @@ jobs: - name: Install base packages (Fedora 40) if: matrix.container == 'fedora:40' run: | - dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel zlib-devel openssl-devel + dnf install -y python3 python3-pip python3-devel git ca-certificates cmake ninja-build clang gcc gcc-c++ make verilator libstdc++-devel libstdc++-static zlib-devel openssl-devel - name: Checkout repository uses: actions/checkout@v4 @@ -69,6 +69,13 @@ jobs: with: python-version: "3.11" + - name: Install system dependencies (native Ubuntu) + if: ${{ !matrix.container }} + run: | + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true + sudo apt-get update + sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev + - name: Install RyuSim run: bash setup_ryusim.sh env: @@ -77,13 +84,6 @@ jobs: - name: Install Python dependencies run: pip install ${{ matrix.pip_flags || '' }} -r requirements.txt - - name: Install system dependencies (native Ubuntu) - if: ${{ !matrix.container }} - run: | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true - sudo apt-get update - sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev - - name: Run SV construct tests run: | if [ "${{ inputs.category }}" = "all" ] || [ -z "${{ inputs.category }}" ]; then From 7a18d82884dbaa3866d85d76ab754831036aa56b Mon Sep 17 00:00:00 2001 From: stonelyd Date: Fri, 27 Mar 2026 12:29:12 -0400 Subject: [PATCH 10/14] Increase timeout for C906 compilation to 2400 seconds --- rtlmeter_tests/XuanTie-C906/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtlmeter_tests/XuanTie-C906/config.yaml b/rtlmeter_tests/XuanTie-C906/config.yaml index fa3e961..1c8c6ee 100644 --- a/rtlmeter_tests/XuanTie-C906/config.yaml +++ b/rtlmeter_tests/XuanTie-C906/config.yaml @@ -2,7 +2,7 @@ name: XuanTie-C906 source: rtlmeter tier: 1 description: "T-Head XuanTie C906 -- mid-range RISC-V RV64GC application core (Alibaba T-Head)" -timeout: 1200 # C906 is large (284 .v files) — needs ~15min to compile on CI runners +timeout: 2400 # C906 is large (284 .v files) — needs ~15min to compile on CI runners top_module: soc upstream: repository: https://github.com/XUANTIE-RV/openc906.git From d614e325ab505f1afe045f89cdab960b9a1681dd Mon Sep 17 00:00:00 2001 From: stonelyd Date: Fri, 27 Mar 2026 16:27:09 -0400 Subject: [PATCH 11/14] Update timeout value in config.yaml Increased timeout for C910 compilation on CI runners. --- rtlmeter_tests/XuanTie-C910/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtlmeter_tests/XuanTie-C910/config.yaml b/rtlmeter_tests/XuanTie-C910/config.yaml index 2780007..503b01a 100644 --- a/rtlmeter_tests/XuanTie-C910/config.yaml +++ b/rtlmeter_tests/XuanTie-C910/config.yaml @@ -2,7 +2,7 @@ name: XuanTie-C910 source: rtlmeter tier: 1 description: "T-Head XuanTie C910 -- high-performance RISC-V RV64GC multi-issue application core (Alibaba T-Head)" -timeout: 3600 # C910 is very large — needs ~30min+ to compile on CI runners +timeout: 4600 # C910 is very large — needs ~30min+ to compile on CI runners top_module: soc upstream: repository: https://github.com/XUANTIE-RV/openc910.git From fea86b28266960ee0e42368c22848b71fda40948 Mon Sep 17 00:00:00 2001 From: David Stonely Date: Mon, 30 Mar 2026 10:33:51 -0400 Subject: [PATCH 12/14] fix(ci): install Clang 18 on Debian 12 and Ubuntu 22.04 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) --- .github/workflows/benchmarks.yml | 22 ++++++++-------------- .github/workflows/sv-tests.yml | 6 ------ 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index aa580fe..1fd0aff 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -1,18 +1,6 @@ name: Benchmarks on: - push: - paths: - - "rtlmeter_tests/**" - - "cocotb_tests/**" - - "run_benchmarks.py" - - ".github/workflows/benchmarks.yml" - pull_request: - paths: - - "rtlmeter_tests/**" - - "cocotb_tests/**" - - "run_benchmarks.py" - - ".github/workflows/benchmarks.yml" workflow_dispatch: inputs: ryusim_version: @@ -49,7 +37,10 @@ jobs: if: matrix.container == 'debian:12' run: | apt-get update - apt-get install -y python3 python3-pip python3-dev python3-venv git curl ca-certificates cmake ninja-build clang verilator zlib1g-dev libssl-dev + apt-get install -y python3 python3-pip python3-dev python3-venv git curl ca-certificates cmake ninja-build verilator zlib1g-dev libssl-dev wget gnupg lsb-release software-properties-common + wget -qO- https://apt.llvm.org/llvm.sh | bash -s -- 18 + ln -sf /usr/bin/clang-18 /usr/bin/clang + ln -sf /usr/bin/clang++-18 /usr/bin/clang++ - name: Install base packages (Rocky 9) if: matrix.container == 'rockylinux:9' @@ -77,7 +68,10 @@ jobs: run: | sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test || true sudo apt-get update - sudo apt-get install -y cmake ninja-build clang verilator zlib1g-dev libssl-dev libstdc++-13-dev + sudo apt-get install -y cmake ninja-build verilator zlib1g-dev libssl-dev libstdc++-13-dev wget gnupg lsb-release software-properties-common + wget -qO- https://apt.llvm.org/llvm.sh | sudo bash -s -- 18 + sudo ln -sf /usr/bin/clang-18 /usr/bin/clang + sudo ln -sf /usr/bin/clang++-18 /usr/bin/clang++ - name: Install RyuSim run: bash setup_ryusim.sh diff --git a/.github/workflows/sv-tests.yml b/.github/workflows/sv-tests.yml index eec17c6..3452092 100644 --- a/.github/workflows/sv-tests.yml +++ b/.github/workflows/sv-tests.yml @@ -1,12 +1,6 @@ name: SV Construct Tests on: - push: - paths: - - "uhdm_tests/**" - pull_request: - paths: - - "uhdm_tests/**" workflow_dispatch: inputs: ryusim_version: From 93263985eb09a481dcae17754bb9a441d9f3de8b Mon Sep 17 00:00:00 2001 From: David Stonely Date: Mon, 30 Mar 2026 15:06:24 -0400 Subject: [PATCH 13/14] fix(ci): remove 120-minute job timeout from benchmarks workflow Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/benchmarks.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 1fd0aff..684de50 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -10,7 +10,6 @@ on: jobs: benchmark: - timeout-minutes: 120 runs-on: ${{ matrix.os }} container: ${{ matrix.container || '' }} strategy: From 52085a63701ca92d5b3c5774cffe6a8c1e745a8c Mon Sep 17 00:00:00 2001 From: David Stonely Date: Mon, 30 Mar 2026 18:11:03 -0400 Subject: [PATCH 14/14] fix: add 1800s timeout for VeeR-EL2 Default 900s timeout is too tight for Debian 12 container runners. Co-Authored-By: Claude Opus 4.6 (1M context) --- rtlmeter_tests/VeeR-EL2/config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/rtlmeter_tests/VeeR-EL2/config.yaml b/rtlmeter_tests/VeeR-EL2/config.yaml index f8bc8a2..fcd3ffe 100644 --- a/rtlmeter_tests/VeeR-EL2/config.yaml +++ b/rtlmeter_tests/VeeR-EL2/config.yaml @@ -3,6 +3,7 @@ source: rtlmeter tier: 1 description: "Western Digital VeeR EL2 — production RISC-V RV32IMC core (CHIPS Alliance)" top_module: veer_wrapper +timeout: 1800 upstream: repository: https://github.com/chipsalliance/Cores-VeeR-EL2.git revision: c5c004589ee0a308b63278ee609e1597f61a4143