[CI] Run ctest in multi-arch build jobs#4647
Merged
Conversation
The cpp-sdk-user example project unconditionally enables HIP language (LANGUAGES CXX HIP), which requires hip-lang-config.cmake in the dist prefix. In multi-arch CI stages where HIP hasn't been built yet (e.g. foundation), this causes ctest to fail and block all downstream stages. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Optional sysdeps (expat, gmp, mpfr, ncurses, hwloc, libpciaccess) were included unconditionally via add_subdirectory, causing their tests to register even in stages where they are prebuilt inbound artifacts. The tests then fail because the build-tree paths don't exist. Gate both the THEROCK_BUNDLED_* variable assignments and the add_subdirectory calls on the corresponding THEROCK_ENABLE_SYSDEPS_* feature flags, matching the pattern already used for amd-mesa. Core sysdeps (in the 'sysdeps' artifact) remain unconditional. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
ScottTodd
commented
Apr 18, 2026
Member
Author
ScottTodd
left a comment
There was a problem hiding this comment.
Linux ctest steps are now all passing after the sysdeps changes properly skip building/testing across stages: https://github.com/ROCm/TheRock/actions/runs/24586388686?pr=4647
Comment on lines
+172
to
+174
| - name: Test Packaging | ||
| run: | | ||
| ctest --test-dir ${BUILD_DIR} --output-on-failure |
Member
Author
There was a problem hiding this comment.
The therock-examples-cpp-sdk-user test failed on Windows: https://github.com/ROCm/TheRock/actions/runs/24586388686/job/71907545675?pr=4647#step:18:86
HIP: Using hipcc from relative path: B:/build/dist/rocm/bin/hipcc.exe
hiprand version: 3.3.0
rocrand version: 4.4.0
CMake Error at CMakeLists.txt:65 (find_package):
Could not find a package configuration file provided by "hipsparselt" with
any of the following names:
hipsparseltConfig.cmake
hipsparselt-config.cmake
Add the installation prefix of "hipsparselt" to CMAKE_PREFIX_PATH or set
"hipsparselt_DIR" to a directory containing one of the above files. If
"hipsparselt" provides a separate development package or SDK, be sure it
has been installed.
Configuring incomplete, errors occurred!
CMake Error at C:/home/runner/_work/TheRock/TheRock/examples/clean_configure_test_project.cmake:46 (message):
Failed to execute test process
Errors while running CTest
We were only running ctest on Linux before in non-multi-arch CI, so this is probably a real test failure that we've just been missing coverage for. Could fix now, or proceed with this PR for just Linux as a start.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
These tests haven't been running on multi-arch CI, which is all that runs by default now on PRs/commits, leading to #4640.
Technical Details
Here's where the tests are in non-multi-arch CI:
TheRock/.github/workflows/build_portable_linux_artifacts.yml
Lines 132 to 135 in ffb6c28
Multi-arch CI builds in multiple stages, so several subprojects/tests needed additional filtering so they would only be included in the stages that have all necessarily deps/files available.
Test Plan
Test Result
https://github.com/ROCm/TheRock/actions/runs/24586388686?pr=4647
Submission Checklist