Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 51 additions & 30 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,34 +41,55 @@ jobs:
# working-directory: ./build
# run: ./test_rmm

build-and-test-with-SDE:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Create Build Directory
run: mkdir build

- name: Download and Unpack SDE
working-directory: ./build
run: |
wget https://downloadmirror.intel.com/859732/sde-external-9.58.0-2025-06-16-lin.tar.xz
tar xf sde-external-9.58.0-2025-06-16-lin.tar.xz

- name: Configure CMake
working-directory: ./build
run: cmake -DENABLE_ADDRESS_SANITIZER=ON -DMARCH=icelake-client -DHAVE_STD_REGEX=ON ..

- name: Build Project
working-directory: ./build
run: make -j

- name: Run Unittests
working-directory: ./build
run: sde-external-9.58.0-2025-06-16-lin/sde64 -icl -emu-xinuse 0 -- ./unittests

- name: Run LOUDS Tree Tests
working-directory: ./build
run: sde-external-9.58.0-2025-06-16-lin/sde64 -icl -emu-xinuse 0 -- ./louds_tree_tests
build-and-test-with-SDE:
runs-on: ubuntu-latest
timeout-minutes: 60

steps:
- uses: actions/checkout@v4

- name: Create Build Directory
run: mkdir build

- name: Download and Unpack SDE
working-directory: ./build
run: |
wget https://downloadmirror.intel.com/859732/sde-external-9.58.0-2025-06-16-lin.tar.xz
tar xf sde-external-9.58.0-2025-06-16-lin.tar.xz

- name: Configure CMake
working-directory: ./build
run: cmake -DENABLE_ADDRESS_SANITIZER=ON -DMARCH=icelake-client -DHAVE_STD_REGEX=ON ..

- name: Build Project
working-directory: ./build
run: make -j
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Use dynamic parallelism for faster builds

On GitHub runners, make -j defaults to unlimited jobs, which can oversubscribe CPU and slow builds. Consider make -j$(nproc) (or cmake --build . -j$(nproc)) to align with available cores for more consistent performance.


- name: Run Unittests
working-directory: ./build
# SDE can hang during process teardown (static/ASan destructors) after all
# tests complete successfully. Use `timeout` to prevent the job from blocking
# indefinitely. GTest XML output is used to verify tests passed before
# treating a teardown timeout as success.
run: |
timeout 1800 sde-external-9.58.0-2025-06-16-lin/sde64 -icl -emu-xinuse 0 -- \
./unittests --gtest_output=xml:unittests_results.xml
rc=$?
if [ $rc -eq 124 ] && grep -q 'failures="0"' unittests_results.xml 2>/dev/null; then
echo "SDE timed out during process teardown (known SDE/ASan issue) - all tests passed, treating as success"
exit 0
fi
exit $rc

- name: Run LOUDS Tree Tests
working-directory: ./build
run: |
timeout 1800 sde-external-9.58.0-2025-06-16-lin/sde64 -icl -emu-xinuse 0 -- \
./louds_tree_tests --gtest_output=xml:louds_results.xml
rc=$?
if [ $rc -eq 124 ] && grep -q 'failures="0"' louds_results.xml 2>/dev/null; then
echo "SDE timed out during process teardown (known SDE/ASan issue) - all tests passed, treating as success"
exit 0
fi
exit $rc