From 992ed94af5c7ee3636ad64a6065b45006f3228cf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Mar 2026 00:48:14 +0000 Subject: [PATCH 1/8] Initial plan From 69687916a2f0e8791ce227cfdf8898239d799eff Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Mar 2026 00:57:04 +0000 Subject: [PATCH 2/8] ci: separate t_algorithms_test into its own CI job - Exclude t_algorithms_test from the build job's testsuite for ASAN builds (using --exclude-regex), so the build job doesn't fail and all downstream jobs can continue running. The test still runs in non-ASAN builds (TSAN, Debug/coverage) so llvm-cov continues to work. - Upload the algorithms_test binary as a separate artifact for ASAN builds. - Add a new t-algorithms-test job (continue-on-error: true, no dependents) that downloads the install+binary artifacts and runs t_algorithms_test to track the failure status. Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com> --- .github/workflows/linux-eic-shell.yml | 46 ++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml index 7c5468ca6d..19b509773b 100644 --- a/.github/workflows/linux-eic-shell.yml +++ b/.github/workflows/linux-eic-shell.yml @@ -207,7 +207,7 @@ jobs: run: | export LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH export JANA_PLUGIN_PATH=$PWD/install/lib/EICrecon/plugins${JANA_PLUGIN_PATH:+:${JANA_PLUGIN_PATH}} - ctest --test-dir build -V + ctest --test-dir build -V ${{ matrix.USE_ASAN == 'ON' && '--exclude-regex t_algorithms_test' || '' }} - name: Compress install directory run: tar -caf install.tar.zst install/ - name: Upload install directory (ASAN) @@ -217,6 +217,13 @@ jobs: name: install-${{ matrix.CXX }}-eic-shell-${{ matrix.CMAKE_BUILD_TYPE }}-${{ env.platform }}-${{ matrix.release }}-ASAN path: install.tar.zst if-no-files-found: error + - name: Upload algorithms_test binary (ASAN) + if: ${{ matrix.USE_ASAN == 'ON' && matrix.USE_TSAN == 'OFF' }} + uses: actions/upload-artifact@v7 + with: + name: algorithms_test-${{ matrix.CXX }}-eic-shell-${{ matrix.CMAKE_BUILD_TYPE }}-${{ env.platform }}-${{ matrix.release }}-ASAN + path: build/src/tests/algorithms_test/algorithms_test + if-no-files-found: error - name: Upload install directory (TSAN) if: ${{ matrix.USE_ASAN == 'OFF' && matrix.USE_TSAN == 'ON' }} uses: actions/upload-artifact@v7 @@ -236,6 +243,43 @@ jobs: path: build.tar.zst if-no-files-found: error + t-algorithms-test: + # This job runs t_algorithms_test separately from the build job. + # It specifically targets the clang++ Release ASAN configuration that was failing. + runs-on: ubuntu-24.04 + needs: + - build + continue-on-error: true + steps: + - name: Checkout .github + uses: actions/checkout@v6 + with: + sparse-checkout: .github + - uses: cvmfs-contrib/github-action-cvmfs@v5 + - name: Download install directory + uses: actions/download-artifact@v8 + with: + name: install-clang++-eic-shell-Release-${{ env.platform }}-${{ env.release }}-ASAN + - name: Uncompress install directory + run: tar -xaf install.tar.zst + - name: Download algorithms_test binary + uses: actions/download-artifact@v8 + with: + name: algorithms_test-clang++-eic-shell-Release-${{ env.platform }}-${{ env.release }}-ASAN + path: build/src/tests/algorithms_test/ + - name: Run t_algorithms_test + uses: eic/run-cvmfs-osg-eic-shell@main + with: + organization: "${{ env.organization }}" + platform-release: "${{ env.platform }}:${{ env.release }}" + run: | + # GitHub Actions artifacts do not preserve file permissions + chmod +x build/src/tests/algorithms_test/algorithms_test + export LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH + export JANA_PLUGIN_PATH=$PWD/install/lib/EICrecon/plugins${JANA_PLUGIN_PATH:+:${JANA_PLUGIN_PATH}} + cd build/src/tests/algorithms_test + ./algorithms_test + clang-tidy-iwyu: runs-on: ubuntu-24.04 needs: build From 492d5e3cda1bdc4c18eae94abbed9ee9821234b8 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 11 Mar 2026 10:18:10 -0500 Subject: [PATCH 3/8] fix: remove t-algorithms-test --- .github/workflows/linux-eic-shell.yml | 37 --------------------------- 1 file changed, 37 deletions(-) diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml index 19b509773b..e5f95dcd10 100644 --- a/.github/workflows/linux-eic-shell.yml +++ b/.github/workflows/linux-eic-shell.yml @@ -243,43 +243,6 @@ jobs: path: build.tar.zst if-no-files-found: error - t-algorithms-test: - # This job runs t_algorithms_test separately from the build job. - # It specifically targets the clang++ Release ASAN configuration that was failing. - runs-on: ubuntu-24.04 - needs: - - build - continue-on-error: true - steps: - - name: Checkout .github - uses: actions/checkout@v6 - with: - sparse-checkout: .github - - uses: cvmfs-contrib/github-action-cvmfs@v5 - - name: Download install directory - uses: actions/download-artifact@v8 - with: - name: install-clang++-eic-shell-Release-${{ env.platform }}-${{ env.release }}-ASAN - - name: Uncompress install directory - run: tar -xaf install.tar.zst - - name: Download algorithms_test binary - uses: actions/download-artifact@v8 - with: - name: algorithms_test-clang++-eic-shell-Release-${{ env.platform }}-${{ env.release }}-ASAN - path: build/src/tests/algorithms_test/ - - name: Run t_algorithms_test - uses: eic/run-cvmfs-osg-eic-shell@main - with: - organization: "${{ env.organization }}" - platform-release: "${{ env.platform }}:${{ env.release }}" - run: | - # GitHub Actions artifacts do not preserve file permissions - chmod +x build/src/tests/algorithms_test/algorithms_test - export LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH - export JANA_PLUGIN_PATH=$PWD/install/lib/EICrecon/plugins${JANA_PLUGIN_PATH:+:${JANA_PLUGIN_PATH}} - cd build/src/tests/algorithms_test - ./algorithms_test - clang-tidy-iwyu: runs-on: ubuntu-24.04 needs: build From 1c2773380f8fd15dbcc9a5ddada73456603008ba Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 11 Mar 2026 10:22:29 -0500 Subject: [PATCH 4/8] fix: tighten test regex Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/linux-eic-shell.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml index e5f95dcd10..09db7d63d2 100644 --- a/.github/workflows/linux-eic-shell.yml +++ b/.github/workflows/linux-eic-shell.yml @@ -207,7 +207,7 @@ jobs: run: | export LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH export JANA_PLUGIN_PATH=$PWD/install/lib/EICrecon/plugins${JANA_PLUGIN_PATH:+:${JANA_PLUGIN_PATH}} - ctest --test-dir build -V ${{ matrix.USE_ASAN == 'ON' && '--exclude-regex t_algorithms_test' || '' }} + ctest --test-dir build -V ${{ matrix.USE_ASAN == 'ON' && '--exclude-regex ^t_algorithms_test$' || '' }} - name: Compress install directory run: tar -caf install.tar.zst install/ - name: Upload install directory (ASAN) From c2fb86c458cf2c2b7a0c6be6fe1ea6dcd007f2f3 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 11 Mar 2026 10:23:17 -0500 Subject: [PATCH 5/8] fix: don't upload test binary --- .github/workflows/linux-eic-shell.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml index 09db7d63d2..32d4ffbeb2 100644 --- a/.github/workflows/linux-eic-shell.yml +++ b/.github/workflows/linux-eic-shell.yml @@ -217,13 +217,6 @@ jobs: name: install-${{ matrix.CXX }}-eic-shell-${{ matrix.CMAKE_BUILD_TYPE }}-${{ env.platform }}-${{ matrix.release }}-ASAN path: install.tar.zst if-no-files-found: error - - name: Upload algorithms_test binary (ASAN) - if: ${{ matrix.USE_ASAN == 'ON' && matrix.USE_TSAN == 'OFF' }} - uses: actions/upload-artifact@v7 - with: - name: algorithms_test-${{ matrix.CXX }}-eic-shell-${{ matrix.CMAKE_BUILD_TYPE }}-${{ env.platform }}-${{ matrix.release }}-ASAN - path: build/src/tests/algorithms_test/algorithms_test - if-no-files-found: error - name: Upload install directory (TSAN) if: ${{ matrix.USE_ASAN == 'OFF' && matrix.USE_TSAN == 'ON' }} uses: actions/upload-artifact@v7 From b4b0d691eaab07c98dfb2f8d6dca206bd10bff08 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 11 Mar 2026 10:18:54 -0500 Subject: [PATCH 6/8] Revert "fix: remove t-algorithms-test" This reverts commit 492d5e3cda1bdc4c18eae94abbed9ee9821234b8. --- .github/workflows/linux-eic-shell.yml | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml index 32d4ffbeb2..289999429f 100644 --- a/.github/workflows/linux-eic-shell.yml +++ b/.github/workflows/linux-eic-shell.yml @@ -236,6 +236,43 @@ jobs: path: build.tar.zst if-no-files-found: error + t-algorithms-test: + # This job runs t_algorithms_test separately from the build job. + # It specifically targets the clang++ Release ASAN configuration that was failing. + runs-on: ubuntu-24.04 + needs: + - build + continue-on-error: true + steps: + - name: Checkout .github + uses: actions/checkout@v6 + with: + sparse-checkout: .github + - uses: cvmfs-contrib/github-action-cvmfs@v5 + - name: Download install directory + uses: actions/download-artifact@v8 + with: + name: install-clang++-eic-shell-Release-${{ env.platform }}-${{ env.release }}-ASAN + - name: Uncompress install directory + run: tar -xaf install.tar.zst + - name: Download algorithms_test binary + uses: actions/download-artifact@v8 + with: + name: algorithms_test-clang++-eic-shell-Release-${{ env.platform }}-${{ env.release }}-ASAN + path: build/src/tests/algorithms_test/ + - name: Run t_algorithms_test + uses: eic/run-cvmfs-osg-eic-shell@main + with: + organization: "${{ env.organization }}" + platform-release: "${{ env.platform }}:${{ env.release }}" + run: | + # GitHub Actions artifacts do not preserve file permissions + chmod +x build/src/tests/algorithms_test/algorithms_test + export LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH + export JANA_PLUGIN_PATH=$PWD/install/lib/EICrecon/plugins${JANA_PLUGIN_PATH:+:${JANA_PLUGIN_PATH}} + cd build/src/tests/algorithms_test + ./algorithms_test + clang-tidy-iwyu: runs-on: ubuntu-24.04 needs: build From 7776c8810462bc17a0df5e31bc178a4db4ebeaba Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Wed, 11 Mar 2026 10:23:48 -0500 Subject: [PATCH 7/8] Revert "fix: don't upload test binary" This reverts commit c2fb86c458cf2c2b7a0c6be6fe1ea6dcd007f2f3. --- .github/workflows/linux-eic-shell.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml index 289999429f..08a14f810c 100644 --- a/.github/workflows/linux-eic-shell.yml +++ b/.github/workflows/linux-eic-shell.yml @@ -217,6 +217,13 @@ jobs: name: install-${{ matrix.CXX }}-eic-shell-${{ matrix.CMAKE_BUILD_TYPE }}-${{ env.platform }}-${{ matrix.release }}-ASAN path: install.tar.zst if-no-files-found: error + - name: Upload algorithms_test binary (ASAN) + if: ${{ matrix.USE_ASAN == 'ON' && matrix.USE_TSAN == 'OFF' }} + uses: actions/upload-artifact@v7 + with: + name: algorithms_test-${{ matrix.CXX }}-eic-shell-${{ matrix.CMAKE_BUILD_TYPE }}-${{ env.platform }}-${{ matrix.release }}-ASAN + path: build/src/tests/algorithms_test/algorithms_test + if-no-files-found: error - name: Upload install directory (TSAN) if: ${{ matrix.USE_ASAN == 'OFF' && matrix.USE_TSAN == 'ON' }} uses: actions/upload-artifact@v7 From de1b6803a2eb666eae4330415086ea16cda8d234 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Mar 2026 13:13:10 -0500 Subject: [PATCH 8/8] Use ctest to run t_algorithms_test in CI workflow (#2558) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `t-algorithms-test` workflow job invoked the `algorithms_test` binary directly, bypassing the test definition set in CMake (including `LLVM_PROFILE_FILE` and any other future test properties). ## Change Instead of downloading just the test binary and running it directly, the build job now produces a slim build archive (containing the `CTestTestfile.cmake` hierarchy and the test binary) for the `clang++ Release ASAN` configuration. The `t-algorithms-test` job downloads this archive and runs the test via `ctest`, exactly as defined in `src/tests/algorithms_test/CMakeLists.txt`: ```cmake add_test(NAME t_algorithms_test COMMAND env LLVM_PROFILE_FILE=algorithms_test.profraw $) ``` The workflow step now runs: ```yaml ctest --test-dir build -V -R "^t_algorithms_test$" ``` This ensures the job automatically stays in sync with any future changes to the CMake test definition (new environment variables, working directory, test properties, etc.) without requiring manual updates to the workflow. --- 💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips) in the docs. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com> --- .github/workflows/linux-eic-shell.yml | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml index 08a14f810c..bbf7d89643 100644 --- a/.github/workflows/linux-eic-shell.yml +++ b/.github/workflows/linux-eic-shell.yml @@ -217,12 +217,16 @@ jobs: name: install-${{ matrix.CXX }}-eic-shell-${{ matrix.CMAKE_BUILD_TYPE }}-${{ env.platform }}-${{ matrix.release }}-ASAN path: install.tar.zst if-no-files-found: error - - name: Upload algorithms_test binary (ASAN) - if: ${{ matrix.USE_ASAN == 'ON' && matrix.USE_TSAN == 'OFF' }} + # Only compress and upload build directory for t_algorithms_test if we are going to use it later + - name: Compress build directory (for t_algorithms_test) + if: ${{ matrix.CXX == 'clang++' && matrix.CMAKE_BUILD_TYPE == 'Release' && matrix.USE_ASAN == 'ON' && matrix.USE_TSAN == 'OFF' }} + run: tar -caf build-t-algorithms-test.tar.zst $(find build -name "CTestTestfile.cmake") build/src/tests/algorithms_test/algorithms_test + - name: Upload build directory (for t_algorithms_test) + if: ${{ matrix.CXX == 'clang++' && matrix.CMAKE_BUILD_TYPE == 'Release' && matrix.USE_ASAN == 'ON' && matrix.USE_TSAN == 'OFF' }} uses: actions/upload-artifact@v7 with: - name: algorithms_test-${{ matrix.CXX }}-eic-shell-${{ matrix.CMAKE_BUILD_TYPE }}-${{ env.platform }}-${{ matrix.release }}-ASAN - path: build/src/tests/algorithms_test/algorithms_test + name: build-t-algorithms-test-${{ matrix.CXX }}-eic-shell-${{ matrix.CMAKE_BUILD_TYPE }}-${{ env.platform }}-${{ matrix.release }}-ASAN + path: build-t-algorithms-test.tar.zst if-no-files-found: error - name: Upload install directory (TSAN) if: ${{ matrix.USE_ASAN == 'OFF' && matrix.USE_TSAN == 'ON' }} @@ -262,11 +266,12 @@ jobs: name: install-clang++-eic-shell-Release-${{ env.platform }}-${{ env.release }}-ASAN - name: Uncompress install directory run: tar -xaf install.tar.zst - - name: Download algorithms_test binary + - name: Download build directory (for t_algorithms_test) uses: actions/download-artifact@v8 with: - name: algorithms_test-clang++-eic-shell-Release-${{ env.platform }}-${{ env.release }}-ASAN - path: build/src/tests/algorithms_test/ + name: build-t-algorithms-test-clang++-eic-shell-Release-${{ env.platform }}-${{ env.release }}-ASAN + - name: Uncompress build directory + run: tar -xaf build-t-algorithms-test.tar.zst - name: Run t_algorithms_test uses: eic/run-cvmfs-osg-eic-shell@main with: @@ -277,8 +282,7 @@ jobs: chmod +x build/src/tests/algorithms_test/algorithms_test export LD_LIBRARY_PATH=$PWD/install/lib:$LD_LIBRARY_PATH export JANA_PLUGIN_PATH=$PWD/install/lib/EICrecon/plugins${JANA_PLUGIN_PATH:+:${JANA_PLUGIN_PATH}} - cd build/src/tests/algorithms_test - ./algorithms_test + ctest --test-dir build -V -R "^t_algorithms_test$" clang-tidy-iwyu: runs-on: ubuntu-24.04