From a50a168d2f38bb9d46da11f00921346d8f4e9eac Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Fri, 17 Jul 2026 15:47:48 -0700 Subject: [PATCH 01/22] GH actions YAML. --- .github/workflows/build.yml | 159 ++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..3f3004c5 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,159 @@ +on: + push: + pull_request: +name: Build +jobs: + build_docker: + strategy: + fail-fast: false + matrix: + include: + - name: gcc11-debug + base_img: gcc + ver: 11 + compiler: g++ + pre_cmd: "true" + build_type: Debug + cmake_extra: -DENABLE_WARNINGS_AS_ERRORS=On -DENABLE_COVERAGE=On + ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" + parallel: 4 +# - name: gcc11 +# base_img: gcc +# ver: 11 +# compiler: g++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: "" +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: gcc-14 +# base_img: gcc +# ver: 14 +# compiler: g++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: "" +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: clang19 +# base_img: clang +# ver: 19 +# compiler: clang++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: "" +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: nvcc12 +# base_img: nvcc +# ver: 12.0.0 +# compiler: g++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: nvcc12-debug +# base_img: nvcc +# ver: 12.2.2 +# compiler: g++ +# pre_cmd: "true" +# build_type: Debug +# cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: rocm +# base_img: rocm +# ver: latest +# compiler: /opt/rocm/llvm/bin/amdclang++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: sycl +# base_img: oneapi +# ver: latest +# compiler: dpcpp +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: -DENABLE_SYCL=On +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 + runs-on: ubuntu-latest + steps: + - run: | + sudo rm -rf /usr/share/dotnet + sudo rm -rf /usr/local/lib/android + sudo rm -rf /opt/ghc + sudo rm -rf /opt/hostedtoolcache/CodeQL + sudo docker image prune --all --force + - uses: actions/checkout@v2 + with: + submodules: recursive + - uses: docker/setup-buildx-action@v3 + - uses: docker/build-push-action@v6 + with: + target: test + build-args: | + BASE_IMG=${{ matrix.base_img }} + VER=${{ matrix.ver }} + COMPILER=${{ matrix.compiler }} + PRE_CMD=${{ matrix.pre_cmd }} + BUILD_TYPE=${{ matrix.build_type }} + CMAKE_EXTRA=${{ matrix.cmake_extra }} + CTEST_EXTRA=${{ matrix.ctest_extra }} + PARALLEL=${{ matrix.parallel }} + CMAKE_BUILD_OPTS=--build build --verbose --parallel ${{ matrix.parallel }} + build_mac: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + - uses: threeal/cmake-action@v1.3.0 + with: + build-dir: build + options: + CMAKE_CXX_STANDARD=20 + ENABLE_OPENMP=Off + CMAKE_BUILD_TYPE=Release + run-build: true + build-args: '--parallel 16' + - uses: threeal/ctest-action@v1.1.0 + build_windows: + strategy: + matrix: + shared: + - args: + BUILD_SHARED_LIBS=On + CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=On + - args: BUILD_SHARED_LIBS=Off + + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive +## ==================================== +## Config and build action + - uses: threeal/cmake-action@v1.3.0 + with: + build-dir: build + options: + ENABLE_WARNINGS_AS_ERRORS=Off + BLT_CXX_STD="c++20" + CMAKE_CXX_STANDARD=20 + CMAKE_BUILD_TYPE=Release + ${{ matrix.shared.args }} + run-build: true + build-args: '--parallel 16' +## ==================================== +## Print the contents of the test directory in the build space (debugging) +## - run: | +## dir -r D:\a\RAJA\RAJA\build\test +## ==================================== +## Run tests action + - uses: threeal/ctest-action@v1.1.0 + with: + build-config: Release From 93c5423c1835a143d313490b04b119a3af2cbc05 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Mon, 20 Jul 2026 14:57:57 -0700 Subject: [PATCH 02/22] Specify Windows release build. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3f3004c5..e5a69b98 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -147,7 +147,7 @@ jobs: CMAKE_BUILD_TYPE=Release ${{ matrix.shared.args }} run-build: true - build-args: '--parallel 16' + build-args: '--config Release --parallel 16' ## ==================================== ## Print the contents of the test directory in the build space (debugging) ## - run: | From ee1477666bf40b0f8c5509b8042041013dafbe86 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Mon, 20 Jul 2026 15:15:36 -0700 Subject: [PATCH 03/22] Add rocm GH actions. --- .github/workflows/build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e5a69b98..fd97fdd8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,15 +62,15 @@ jobs: # cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 # ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" # parallel: 4 -# - name: rocm -# base_img: rocm -# ver: latest -# compiler: /opt/rocm/llvm/bin/amdclang++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 + - name: rocm + base_img: rocm + ver: latest + compiler: /opt/rocm/llvm/bin/amdclang++ + pre_cmd: "true" + build_type: RelWithDebInfo + cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off + ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" + parallel: 4 # - name: sycl # base_img: oneapi # ver: latest From d7b0ff8aeeba8ad92b00094a325a05c5a4345b87 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Tue, 21 Jul 2026 15:58:48 -0700 Subject: [PATCH 04/22] Specify rocm 6.4.3. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fd97fdd8..ba40fbbb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,7 +64,7 @@ jobs: # parallel: 4 - name: rocm base_img: rocm - ver: latest + ver: 6.4.3 compiler: /opt/rocm/llvm/bin/amdclang++ pre_cmd: "true" build_type: RelWithDebInfo From 8870caa179ddbcb11e088ca0e78e83744d372a2c Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Tue, 21 Jul 2026 15:59:14 -0700 Subject: [PATCH 05/22] Link time search path. --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 7a6657e7..c3abbc3d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,6 +35,7 @@ FROM nvidia/cuda:${VER}${CUDA_IMG_SUFFIX} AS nvcc FROM nvcr.io/nvidia/nvhpc:23.3-devel-cuda12.0-ubuntu24.04 AS nvhpc FROM rocm/dev-ubuntu-24.04:${VER} AS rocm +ENV LD_LIBRARY_PATH=/opt/rocm/lib:${LD_LIBRARY_PATH} # The intel-runtime container no longer works, use the fat one FROM intel/oneapi:${VER} AS oneapi From 8f912720bfd70353a60b970ddb785effd215cb7b Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 10:46:20 -0700 Subject: [PATCH 06/22] Add other configurations. --- .github/workflows/build.yml | 108 ++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ba40fbbb..2d74ac08 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,51 +17,51 @@ jobs: cmake_extra: -DENABLE_WARNINGS_AS_ERRORS=On -DENABLE_COVERAGE=On ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" parallel: 4 -# - name: gcc11 -# base_img: gcc -# ver: 11 -# compiler: g++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: "" -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: gcc-14 -# base_img: gcc -# ver: 14 -# compiler: g++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: "" -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: clang19 -# base_img: clang -# ver: 19 -# compiler: clang++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: "" -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: nvcc12 -# base_img: nvcc -# ver: 12.0.0 -# compiler: g++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: nvcc12-debug -# base_img: nvcc -# ver: 12.2.2 -# compiler: g++ -# pre_cmd: "true" -# build_type: Debug -# cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 + - name: gcc11 + base_img: gcc + ver: 11 + compiler: g++ + pre_cmd: "true" + build_type: RelWithDebInfo + cmake_extra: "" + ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" + parallel: 4 + - name: gcc-14 + base_img: gcc + ver: 14 + compiler: g++ + pre_cmd: "true" + build_type: RelWithDebInfo + cmake_extra: "" + ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" + parallel: 4 + - name: clang19 + base_img: clang + ver: 19 + compiler: clang++ + pre_cmd: "true" + build_type: RelWithDebInfo + cmake_extra: "" + ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" + parallel: 4 + - name: nvcc12 + base_img: nvcc + ver: 12.0.0 + compiler: g++ + pre_cmd: "true" + build_type: RelWithDebInfo + cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 + ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" + parallel: 4 + - name: nvcc12-debug + base_img: nvcc + ver: 12.2.2 + compiler: g++ + pre_cmd: "true" + build_type: Debug + cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 + ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" + parallel: 4 - name: rocm base_img: rocm ver: 6.4.3 @@ -71,15 +71,15 @@ jobs: cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" parallel: 4 -# - name: sycl -# base_img: oneapi -# ver: latest -# compiler: dpcpp -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: -DENABLE_SYCL=On -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 + - name: sycl + base_img: oneapi + ver: latest + compiler: dpcpp + pre_cmd: "true" + build_type: RelWithDebInfo + cmake_extra: -DENABLE_SYCL=On + ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" + parallel: 4 runs-on: ubuntu-latest steps: - run: | From 99039dd7f17ccf50f2dce3d4d928649397a13cf3 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 11:30:41 -0700 Subject: [PATCH 07/22] Removing Azure pipelines. --- azure-pipelines.yml | 172 -------------------------------------------- 1 file changed, 172 deletions(-) delete mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index ce76808a..00000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,172 +0,0 @@ -variables: - DO_BUILD: 'yes' - DO_TEST: 'yes' - DO_INSTALL: 'yes' - COMPILER: 'g++' - base_img: gcc - ver: latest - pre_cmd: true - build_type: RelWithDebInfo - # Disable cuda and hip tests since there are no GPUs on these platforms - ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - cmake_extra: "" - parallel: 4 - cmake_build_opts: "--build build --verbose --parallel $(parallel)" - -jobs: -- job: Windows - strategy: - matrix: - shared: - SHARED_ARGS: '-DBUILD_SHARED_LIBS=On' - static: - SHARED_ARGS: '-DBUILD_SHARED_LIBS=Off' - pool: - vmImage: 'windows-2022' - variables: - CMAKE_EXTRA_FLAGS: '-DENABLE_WARNINGS_AS_ERRORS=Off -DBLT_CXX_STD="" -DCMAKE_CXX_STANDARD=20' - steps: - - checkout: self - clean: boolean - submodules: recursive - - task: CMake@1 - inputs: - workingDir: 'build' - cmakeArgs: '$(CMAKE_EXTRA_FLAGS) $(SHARED_ARGS) ../' - - task: CMake@1 - inputs: - workingDir: 'build' - cmakeArgs: '--build . --config Release --verbose --parallel $(parallel)' - - task: CmdLine@2 - inputs: - script: 'ctest.exe -T test -C Release' - workingDirectory: 'build' - condition: eq( variables['Agent.OS'], 'Windows_NT') - - task: PublishTestResults@2 - inputs: - testResultsFormat: 'cTest' - testResultsFiles: '**/Test.xml' -- job: Docker - timeoutInMinutes: 360 - strategy: - matrix: - gcc11-debug: - base_img: gcc - ver: 11 - cmake_extra: -DENABLE_WARNINGS_AS_ERRORS=On -DENABLE_COVERAGE=On - build_type: Debug - gcc11: - base_img: gcc - ver: 11 - gcc-14: - base_img: gcc - ver: 14 - cmake_extra: - clang19: - base_img: clang - compiler: clang++ - ver: 19 - # TODO re-enable sanitizer - # clang19-debug: - # base_img: clang - # compiler: clang++ - # ver: 19 - # cmake_extra: -DCMAKE_CXX_FLAGS=-fsanitize=address - # build_type: Debug - # NVIDIA no longer supports "latest", must update manually - nvcc12: - base_img: nvcc - ver: 12.0.0 - cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 - nvcc12-debug: - base_img: nvcc - ver: 12.2.2 - cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 - build_type: Debug - rocm: - base_img: rocm - cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off - compiler: /opt/rocm/llvm/bin/amdclang++ - sycl: - base_img: oneapi - cmake_extra: -DENABLE_SYCL=On - compiler: dpcpp - pool: - vmImage: 'ubuntu-latest' - variables: - DOCKER_BUILDKIT: '1' - CMAKE_EXTRA_FLAGS: '-DENABLE_DEVELOPER_BENCHMARKS=On -DENABLE_DEVELOPER_DEFAULTS=On -DCMAKE_CXX_STANDARD=11' - steps: - - checkout: self - clean: boolean - submodules: recursive - - task: Docker@1 - inputs: - containerRegistry: raja_ci_docker - command: build - dockerFile: 'Dockerfile' - arguments: >- - --target test - --build-arg BASE_IMG - --build-arg VER - --build-arg COMPILER - --build-arg PRE_CMD - --build-arg BUILD_TYPE - --build-arg CMAKE_EXTRA - --build-arg CTEST_EXTRA - --build-arg PARALLEL - --build-arg CMAKE_BUILD_OPTS - env: - BASE_IMG: $(base_img) - VER: $(ver) - COMPILER: $(COMPILER) - PRE_CMD: $(pre_cmd) - BUILD_TYPE: $(build_type) - CMAKE_EXTRA: $(cmake_extra) - CTEST_EXTRA: $(ctest_extra) - PARALLEL: $(parallel) - CMAKE_BUILD_OPTS: $(cmake_build_opts) - - script: | - CID=$(docker create llnl/camp:$(Build.BuildId)) - echo ${CID} - docker cp ${CID}:/home/axom/workspace/build local-build - docker rm ${CID} - displayName: 'Copy test artifacts' - condition: ne( variables['docker_target'], 'nvcc') - # - script: | - # bash <(curl -s https://raw.githubusercontent.com/codecov/codecov-bash/0b376529f626b50b7d4a9fb734e0e50d28b9b91e/codecov) >& /dev/null - # displayName: 'Upload code coverage' - # condition: eq( variables['docker_target'], 'gcc') - - task: PublishTestResults@2 - inputs: - testResultsFormat: 'cTest' - testResultsFiles: '**/Test.xml' - -- job: Mac - pool: - vmImage: 'macOS-latest' - variables: - CMAKE_EXTRA_FLAGS: '-DENABLE_OPENMP=Off' - steps: - - checkout: self - clean: boolean - submodules: recursive - - task: CMake@1 - inputs: - workingDir: 'build' - cmakeArgs: '$(CMAKE_EXTRA_FLAGS) ../' - - script: | - cd build - make - displayName: 'OSX Build' - condition: eq( variables['Agent.OS'], 'Darwin') - - script: | - cd build - ctest -T test --output-on-failure - displayName: 'OSX Test' - condition: eq( variables['Agent.OS'], 'Darwin') - - task: PublishTestResults@2 - inputs: - testResultsFormat: 'cTest' - testResultsFiles: '**/Test.xml' - From 93fa6491cb88cc75b23db4d0ef2572c2c62514bc Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 11:35:34 -0700 Subject: [PATCH 08/22] Set CMake to 3.29 for Mac and Windows. --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2d74ac08..d404f666 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -113,6 +113,7 @@ jobs: submodules: recursive - uses: threeal/cmake-action@v1.3.0 with: + cmake-version: '3.29.x' # Back off version of cmake with known issue build-dir: build options: CMAKE_CXX_STANDARD=20 @@ -139,6 +140,7 @@ jobs: ## Config and build action - uses: threeal/cmake-action@v1.3.0 with: + cmake-version: '3.29.x' # Back off version of cmake with known issue build-dir: build options: ENABLE_WARNINGS_AS_ERRORS=Off From 59815d8a5a216829729d1ad5fe0b65c413216b2c Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 11:40:14 -0700 Subject: [PATCH 09/22] Remove check on push, keep pull_request. --- .github/workflows/build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d404f666..a42bc04f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,5 +1,4 @@ on: - push: pull_request: name: Build jobs: From 20d21482613e2621cc67b75570f6f2c6d0be7df4 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 12:04:31 -0700 Subject: [PATCH 10/22] Simplify GHA names. --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a42bc04f..df3be197 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,6 +3,7 @@ on: name: Build jobs: build_docker: + name: Docker (${{ matrix.name }}) strategy: fail-fast: false matrix: From b66e1a8782b537a41a5a2da5dfabdf0d85bc2528 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 12:22:27 -0700 Subject: [PATCH 11/22] Differentiate between rocm 6.4.3 and latest. --- .github/workflows/build.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df3be197..7f573ea8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,7 +62,7 @@ jobs: cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" parallel: 4 - - name: rocm + - name: rocm-6.4.3 base_img: rocm ver: 6.4.3 compiler: /opt/rocm/llvm/bin/amdclang++ @@ -71,6 +71,15 @@ jobs: cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" parallel: 4 + - name: rocm-latest + base_img: rocm + ver: latest + compiler: /opt/rocm/llvm/bin/amdclang++ + pre_cmd: "true" + build_type: RelWithDebInfo + cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off + ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" + parallel: 4 - name: sycl base_img: oneapi ver: latest From 68ecef9c9edfa2f5d65bb66a5c78f6f7f58f8511 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 13:49:29 -0700 Subject: [PATCH 12/22] Test GHA targets in Dockerfile. --- .github/workflows/build.yml | 169 ++++++++++++++------------ Dockerfile | 233 ++++++++++++++++++++++++++++-------- 2 files changed, 276 insertions(+), 126 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7f573ea8..da4105f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,86 +9,104 @@ jobs: matrix: include: - name: gcc11-debug - base_img: gcc - ver: 11 - compiler: g++ - pre_cmd: "true" - build_type: Debug - cmake_extra: -DENABLE_WARNINGS_AS_ERRORS=On -DENABLE_COVERAGE=On - ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - parallel: 4 + target: gcc11_debug - name: gcc11 - base_img: gcc - ver: 11 - compiler: g++ - pre_cmd: "true" - build_type: RelWithDebInfo - cmake_extra: "" - ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - parallel: 4 + target: gcc11 - name: gcc-14 - base_img: gcc - ver: 14 - compiler: g++ - pre_cmd: "true" - build_type: RelWithDebInfo - cmake_extra: "" - ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - parallel: 4 + target: gcc14 - name: clang19 - base_img: clang - ver: 19 - compiler: clang++ - pre_cmd: "true" - build_type: RelWithDebInfo - cmake_extra: "" - ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - parallel: 4 + target: clang19 - name: nvcc12 - base_img: nvcc - ver: 12.0.0 - compiler: g++ - pre_cmd: "true" - build_type: RelWithDebInfo - cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 - ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - parallel: 4 + target: nvcc12 - name: nvcc12-debug - base_img: nvcc - ver: 12.2.2 - compiler: g++ - pre_cmd: "true" - build_type: Debug - cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 - ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - parallel: 4 - - name: rocm-6.4.3 - base_img: rocm - ver: 6.4.3 - compiler: /opt/rocm/llvm/bin/amdclang++ - pre_cmd: "true" - build_type: RelWithDebInfo - cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off - ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - parallel: 4 - - name: rocm-latest - base_img: rocm - ver: latest - compiler: /opt/rocm/llvm/bin/amdclang++ - pre_cmd: "true" - build_type: RelWithDebInfo - cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off - ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - parallel: 4 + target: nvcc12_debug + - name: rocm6_4_3 + target: rocm6_4_3 + - name: rocm_latest + target: rocm_latest - name: sycl - base_img: oneapi - ver: latest - compiler: dpcpp - pre_cmd: "true" - build_type: RelWithDebInfo - cmake_extra: -DENABLE_SYCL=On - ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - parallel: 4 + target: sycl +# - name: gcc11-debug +# base_img: gcc +# ver: 11 +# compiler: g++ +# pre_cmd: "true" +# build_type: Debug +# cmake_extra: -DENABLE_WARNINGS_AS_ERRORS=On -DENABLE_COVERAGE=On +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: gcc11 +# base_img: gcc +# ver: 11 +# compiler: g++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: "" +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: gcc-14 +# base_img: gcc +# ver: 14 +# compiler: g++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: "" +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: clang19 +# base_img: clang +# ver: 19 +# compiler: clang++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: "" +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: nvcc12 +# base_img: nvcc +# ver: 12.0.0 +# compiler: g++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: nvcc12-debug +# base_img: nvcc +# ver: 12.2.2 +# compiler: g++ +# pre_cmd: "true" +# build_type: Debug +# cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: rocm-6.4.3 +# base_img: rocm +# ver: 6.4.3 +# compiler: /opt/rocm/llvm/bin/amdclang++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: rocm-latest +# base_img: rocm +# ver: latest +# compiler: /opt/rocm/llvm/bin/amdclang++ +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 +# - name: sycl +# base_img: oneapi +# ver: latest +# compiler: dpcpp +# pre_cmd: "true" +# build_type: RelWithDebInfo +# cmake_extra: -DENABLE_SYCL=On +# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" +# parallel: 4 runs-on: ubuntu-latest steps: - run: | @@ -103,7 +121,8 @@ jobs: - uses: docker/setup-buildx-action@v3 - uses: docker/build-push-action@v6 with: - target: test + target: ${{ matrix.target }} + #target: test build-args: | BASE_IMG=${{ matrix.base_img }} VER=${{ matrix.ver }} diff --git a/Dockerfile b/Dockerfile index c3abbc3d..c46827bd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,67 +7,198 @@ # SPDX-License-Identifier: (BSD-3-Clause) ############################################################################### -ARG BASE_IMG=gcc -ARG COMPILER=g++ -ARG VER=latest -ARG PRE_CMD="true" -ARG BUILD_TYPE=RelWithDebInfo -ARG CTEST_EXTRA="-E '(.*offload|blt.*smoke)'" -ARG CTEST_OPTIONS="${CTEST_EXTRA} -T test -V " -ARG CMAKE_EXTRA="" -ARG CMAKE_OPTIONS="-G Ninja -B build ${CMAKE_EXTRA} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DENABLE_WARNINGS=On" -ARG PARALLEL=4 -ARG BUILD_EXTRA="" -ARG CMAKE_BUILD_OPTS="--build build --verbose --parallel ${PARALLEL} ${BUILD_EXTRA}" -ARG CUDA_IMG_SUFFIX="-devel-ubuntu22.04" +ARG CTEST_EXTRA="-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -### start compiler base images ### -# there is no official container in the hub, but there is an official script -# to install clang/llvm by version, installs a bit more than we need, but we -# do not have to maintain it, so I'm alright with that -FROM ghcr.io/llnl/radiuss:clang-${VER}-ubuntu-24.04 AS clang -ENV LD_LIBRARY_PATH=/opt/view/lib +FROM ghcr.io/llnl/radiuss:gcc-11-ubuntu-24.04 AS gcc11_debug +ENV GTEST_COLOR=1 +COPY . /home/camp/workspace +WORKDIR /home/camp/workspace/build +RUN cmake -G Ninja -B build \ + -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_BUILD_TYPE=Debug \ + -DENABLE_WARNINGS=On \ + -DENABLE_WARNINGS_AS_ERRORS=On \ + -DENABLE_COVERAGE=On .. && \ + cmake --build build --verbose --parallel 4 && \ + cd build && ctest ${CTEST_EXTRA} -T test -V -FROM ghcr.io/llnl/radiuss:gcc-${VER}-ubuntu-24.04 AS gcc +FROM ghcr.io/llnl/radiuss:gcc-11-ubuntu-24.04 AS gcc11 +ENV GTEST_COLOR=1 +COPY . /home/camp/workspace +WORKDIR /home/camp/workspace/build +RUN cmake -G Ninja -B build \ + -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_WARNINGS=On .. && \ + cmake --build build --verbose --parallel 4 && \ + cd build && ctest ${CTEST_EXTRA} -T test -V -FROM nvidia/cuda:${VER}${CUDA_IMG_SUFFIX} AS nvcc +FROM ghcr.io/llnl/radiuss:gcc-14-ubuntu-24.04 AS gcc14 +ENV GTEST_COLOR=1 +COPY . /home/camp/workspace +WORKDIR /home/camp/workspace/build +RUN cmake -G Ninja -B build \ + -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_WARNINGS=On .. && \ + cmake --build build --verbose --parallel 4 && \ + cd build && ctest ${CTEST_EXTRA} -T test -V -FROM nvcr.io/nvidia/nvhpc:23.3-devel-cuda12.0-ubuntu24.04 AS nvhpc +FROM ghcr.io/llnl/radiuss:clang-19-ubuntu-24.04 AS clang19 +ENV GTEST_COLOR=1 +ENV LD_LIBRARY_PATH=/opt/view/lib +COPY . /home/camp/workspace +WORKDIR /home/camp/workspace/build +RUN cmake -G Ninja -B build \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_WARNINGS=On .. && \ + cmake --build build --verbose --parallel 4 && \ + cd build && ctest ${CTEST_EXTRA} -T test -V -FROM rocm/dev-ubuntu-24.04:${VER} AS rocm -ENV LD_LIBRARY_PATH=/opt/rocm/lib:${LD_LIBRARY_PATH} +FROM nvidia/cuda:12.0.0-devel-ubuntu22.04 AS nvcc12 +ENV GTEST_COLOR=1 +COPY scripts/get-deps.sh /tmp/get-deps.sh +RUN bash /tmp/get-deps.sh +COPY . /home/camp/workspace +WORKDIR /home/camp/workspace/build +RUN cmake -G Ninja -B build \ + -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_WARNINGS=On \ + -DENABLE_CUDA=On \ + -DCMAKE_CUDA_ARCHITECTURES=70 .. && \ + cmake --build build --verbose --parallel 4 && \ + cd build && ctest ${CTEST_EXTRA} -T test -V -# The intel-runtime container no longer works, use the fat one -FROM intel/oneapi:${VER} AS oneapi -RUN bash -c 'echo . /opt/intel/oneapi/setvars.sh >> ~/setup_env.sh' -### end compiler base images ### +FROM nvidia/cuda:12.2.2-devel-ubuntu22.04 AS nvcc12_debug +ENV GTEST_COLOR=1 +COPY scripts/get-deps.sh /tmp/get-deps.sh +RUN bash /tmp/get-deps.sh +COPY . /home/camp/workspace +WORKDIR /home/camp/workspace/build +RUN cmake -G Ninja -B build \ + -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_BUILD_TYPE=Debug \ + -DENABLE_WARNINGS=On \ + -DENABLE_CUDA=On \ + -DCMAKE_CUDA_ARCHITECTURES=70 .. && \ + cmake --build build --verbose --parallel 4 && \ + cd build && ctest ${CTEST_EXTRA} -T test -V -FROM ${BASE_IMG} AS base -ARG VER -ARG BASE_IMG +FROM rocm/dev-ubuntu-24.04:6.4.3 AS rocm6_4_3 ENV GTEST_COLOR=1 -# Only install CMake/Ninja for images that don't reliably include them. -# (gcc/clang radiuss images already provide a full toolchain.) +ENV LD_LIBRARY_PATH=/opt/rocm/lib:${LD_LIBRARY_PATH} COPY scripts/get-deps.sh /tmp/get-deps.sh -RUN /bin/bash -lc 'if [[ "${BASE_IMG}" == "nvcc" || "${BASE_IMG}" == "rocm" || "${BASE_IMG}" == "oneapi" ]]; then bash /tmp/get-deps.sh; fi' +RUN bash /tmp/get-deps.sh COPY . /home/camp/workspace WORKDIR /home/camp/workspace/build +RUN cmake -G Ninja -B build \ + -DCMAKE_CXX_COMPILER=/opt/rocm/llvm/bin/amdclang++ \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_WARNINGS=On \ + -DROCM_PATH=/opt/rocm \ + -DENABLE_HIP=On \ + -DENABLE_OPENMP=Off \ + -DENABLE_CUDA=Off .. && \ + cmake --build build --verbose --parallel 4 && \ + cd build && ctest ${CTEST_EXTRA} -T test -V -FROM base AS test -ARG PRE_CMD -ARG CTEST_OPTIONS -ARG CMAKE_OPTIONS -ARG CMAKE_BUILD_OPTS -ARG COMPILER -ENV COMPILER=${COMPILER:-g++} -RUN /bin/bash -lc '[[ -f ~/setup_env.sh ]] && source ~/setup_env.sh ; \ - CXX="${COMPILER:-g++}" ; \ - if [[ "${CMAKE_OPTIONS}" == *"sanitize=address"* ]]; then \ - sudo apt-get install libclang-rt-${VER}-dev -fy; \ - fi ; \ - ${PRE_CMD} && cmake ${CMAKE_OPTIONS} -DCMAKE_CXX_COMPILER="${CXX}" ..' -RUN /bin/bash -c "[[ -f ~/setup_env.sh ]] && source ~/setup_env.sh ; ${PRE_CMD} && cmake ${CMAKE_BUILD_OPTS}" -RUN /bin/bash -c "[[ -f ~/setup_env.sh ]] && source ~/setup_env.sh ; ${PRE_CMD} && cd build && ctest ${CTEST_OPTIONS}" +FROM rocm/dev-ubuntu-24.04:latest AS rocm_latest +ENV GTEST_COLOR=1 +ENV LD_LIBRARY_PATH=/opt/rocm/lib:${LD_LIBRARY_PATH} +COPY scripts/get-deps.sh /tmp/get-deps.sh +RUN bash /tmp/get-deps.sh +COPY . /home/camp/workspace +WORKDIR /home/camp/workspace/build +RUN cmake -G Ninja -B build \ + -DCMAKE_CXX_COMPILER=/opt/rocm/llvm/bin/amdclang++ \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_WARNINGS=On \ + -DROCM_PATH=/opt/rocm \ + -DENABLE_HIP=On \ + -DENABLE_OPENMP=Off \ + -DENABLE_CUDA=Off .. && \ + cmake --build build --verbose --parallel 4 && \ + cd build && ctest ${CTEST_EXTRA} -T test -V + +FROM intel/oneapi:latest AS sycl +ENV GTEST_COLOR=1 +RUN bash -c 'echo . /opt/intel/oneapi/setvars.sh >> ~/setup_env.sh' +COPY scripts/get-deps.sh /tmp/get-deps.sh +RUN bash /tmp/get-deps.sh +COPY . /home/camp/workspace +WORKDIR /home/camp/workspace/build +RUN /bin/bash -lc 'source ~/setup_env.sh && \ + cmake -G Ninja -B build \ + -DCMAKE_CXX_COMPILER=dpcpp \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_WARNINGS=On \ + -DENABLE_SYCL=On .. && \ + cmake --build build --verbose --parallel 4 && \ + cd build && ctest ${CTEST_EXTRA} -T test -V' -# this is here to stop azure from downloading oneapi for every test -FROM alpine AS download_fast +#ARG BASE_IMG=gcc +#ARG COMPILER=g++ +#ARG VER=latest +#ARG PRE_CMD="true" +#ARG BUILD_TYPE=RelWithDebInfo +#ARG CTEST_EXTRA="-E '(.*offload|blt.*smoke)'" +#ARG CTEST_OPTIONS="${CTEST_EXTRA} -T test -V " +#ARG CMAKE_EXTRA="" +#ARG CMAKE_OPTIONS="-G Ninja -B build ${CMAKE_EXTRA} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DENABLE_WARNINGS=On" +#ARG PARALLEL=4 +#ARG BUILD_EXTRA="" +#ARG CMAKE_BUILD_OPTS="--build build --verbose --parallel ${PARALLEL} ${BUILD_EXTRA}" +#ARG CUDA_IMG_SUFFIX="-devel-ubuntu22.04" +# +#### start compiler base images ### +## there is no official container in the hub, but there is an official script +## to install clang/llvm by version, installs a bit more than we need, but we +## do not have to maintain it, so I'm alright with that +#FROM ghcr.io/llnl/radiuss:clang-${VER}-ubuntu-24.04 AS clang +#ENV LD_LIBRARY_PATH=/opt/view/lib +# +#FROM ghcr.io/llnl/radiuss:gcc-${VER}-ubuntu-24.04 AS gcc +# +#FROM nvidia/cuda:${VER}${CUDA_IMG_SUFFIX} AS nvcc +# +#FROM nvcr.io/nvidia/nvhpc:23.3-devel-cuda12.0-ubuntu24.04 AS nvhpc +# +#FROM rocm/dev-ubuntu-24.04:${VER} AS rocm +#ENV LD_LIBRARY_PATH=/opt/rocm/lib:${LD_LIBRARY_PATH} +# +## The intel-runtime container no longer works, use the fat one +#FROM intel/oneapi:${VER} AS oneapi +#RUN bash -c 'echo . /opt/intel/oneapi/setvars.sh >> ~/setup_env.sh' +#### end compiler base images ### +# +#FROM ${BASE_IMG} AS base +#ARG VER +#ARG BASE_IMG +#ENV GTEST_COLOR=1 +## Only install CMake/Ninja for images that don't reliably include them. +## (gcc/clang radiuss images already provide a full toolchain.) +#COPY scripts/get-deps.sh /tmp/get-deps.sh +#RUN /bin/bash -lc 'if [[ "${BASE_IMG}" == "nvcc" || "${BASE_IMG}" == "rocm" || "${BASE_IMG}" == "oneapi" ]]; then bash /tmp/get-deps.sh; fi' +#COPY . /home/camp/workspace +#WORKDIR /home/camp/workspace/build +# +#FROM base AS test +#ARG PRE_CMD +#ARG CTEST_OPTIONS +#ARG CMAKE_OPTIONS +#ARG CMAKE_BUILD_OPTS +#ARG COMPILER +#ENV COMPILER=${COMPILER:-g++} +#RUN /bin/bash -lc '[[ -f ~/setup_env.sh ]] && source ~/setup_env.sh ; \ +# CXX="${COMPILER:-g++}" ; \ +# if [[ "${CMAKE_OPTIONS}" == *"sanitize=address"* ]]; then \ +# sudo apt-get install libclang-rt-${VER}-dev -fy; \ +# fi ; \ +# ${PRE_CMD} && cmake ${CMAKE_OPTIONS} -DCMAKE_CXX_COMPILER="${CXX}" ..' +#RUN /bin/bash -c "[[ -f ~/setup_env.sh ]] && source ~/setup_env.sh ; ${PRE_CMD} && cmake ${CMAKE_BUILD_OPTS}" +#RUN /bin/bash -c "[[ -f ~/setup_env.sh ]] && source ~/setup_env.sh ; ${PRE_CMD} && cd build && ctest ${CTEST_OPTIONS}" +# +## this is here to stop azure from downloading oneapi for every test +#FROM alpine AS download_fast From 5b77a89f2ed3de7e7618b3ab57f06d36b251eb68 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 14:12:29 -0700 Subject: [PATCH 13/22] Debugging non-radiuss builds. --- .github/workflows/build.yml | 20 ++++++++++---------- Dockerfile | 18 +++++++++--------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index da4105f8..4938ab98 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -123,16 +123,16 @@ jobs: with: target: ${{ matrix.target }} #target: test - build-args: | - BASE_IMG=${{ matrix.base_img }} - VER=${{ matrix.ver }} - COMPILER=${{ matrix.compiler }} - PRE_CMD=${{ matrix.pre_cmd }} - BUILD_TYPE=${{ matrix.build_type }} - CMAKE_EXTRA=${{ matrix.cmake_extra }} - CTEST_EXTRA=${{ matrix.ctest_extra }} - PARALLEL=${{ matrix.parallel }} - CMAKE_BUILD_OPTS=--build build --verbose --parallel ${{ matrix.parallel }} + #build-args: | + # BASE_IMG=${{ matrix.base_img }} + # VER=${{ matrix.ver }} + # COMPILER=${{ matrix.compiler }} + # PRE_CMD=${{ matrix.pre_cmd }} + # BUILD_TYPE=${{ matrix.build_type }} + # CMAKE_EXTRA=${{ matrix.cmake_extra }} + # CTEST_EXTRA=${{ matrix.ctest_extra }} + # PARALLEL=${{ matrix.parallel }} + # CMAKE_BUILD_OPTS=--build build --verbose --parallel ${{ matrix.parallel }} build_mac: runs-on: macos-latest steps: diff --git a/Dockerfile b/Dockerfile index c46827bd..72837900 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_WARNINGS_AS_ERRORS=On \ -DENABLE_COVERAGE=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest ${CTEST_EXTRA} -T test -V + cd build && ctest "${CTEST_EXTRA}" -T test -V FROM ghcr.io/llnl/radiuss:gcc-11-ubuntu-24.04 AS gcc11 ENV GTEST_COLOR=1 @@ -31,7 +31,7 @@ RUN cmake -G Ninja -B build \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest ${CTEST_EXTRA} -T test -V + cd build && ctest "${CTEST_EXTRA}" -T test -V FROM ghcr.io/llnl/radiuss:gcc-14-ubuntu-24.04 AS gcc14 ENV GTEST_COLOR=1 @@ -42,7 +42,7 @@ RUN cmake -G Ninja -B build \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest ${CTEST_EXTRA} -T test -V + cd build && ctest "${CTEST_EXTRA}" -T test -V FROM ghcr.io/llnl/radiuss:clang-19-ubuntu-24.04 AS clang19 ENV GTEST_COLOR=1 @@ -54,7 +54,7 @@ RUN cmake -G Ninja -B build \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest ${CTEST_EXTRA} -T test -V + cd build && ctest "${CTEST_EXTRA}" -T test -V FROM nvidia/cuda:12.0.0-devel-ubuntu22.04 AS nvcc12 ENV GTEST_COLOR=1 @@ -69,7 +69,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_CUDA=On \ -DCMAKE_CUDA_ARCHITECTURES=70 .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest ${CTEST_EXTRA} -T test -V + cd build && ctest "${CTEST_EXTRA}" -T test -V FROM nvidia/cuda:12.2.2-devel-ubuntu22.04 AS nvcc12_debug ENV GTEST_COLOR=1 @@ -84,7 +84,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_CUDA=On \ -DCMAKE_CUDA_ARCHITECTURES=70 .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest ${CTEST_EXTRA} -T test -V + cd build && ctest "${CTEST_EXTRA}" -T test -V FROM rocm/dev-ubuntu-24.04:6.4.3 AS rocm6_4_3 ENV GTEST_COLOR=1 @@ -102,7 +102,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_OPENMP=Off \ -DENABLE_CUDA=Off .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest ${CTEST_EXTRA} -T test -V + cd build && ctest "${CTEST_EXTRA}" -T test -V FROM rocm/dev-ubuntu-24.04:latest AS rocm_latest ENV GTEST_COLOR=1 @@ -120,7 +120,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_OPENMP=Off \ -DENABLE_CUDA=Off .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest ${CTEST_EXTRA} -T test -V + cd build && ctest "${CTEST_EXTRA}" -T test -V FROM intel/oneapi:latest AS sycl ENV GTEST_COLOR=1 @@ -136,7 +136,7 @@ RUN /bin/bash -lc 'source ~/setup_env.sh && \ -DENABLE_WARNINGS=On \ -DENABLE_SYCL=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest ${CTEST_EXTRA} -T test -V' + cd build && ctest "${CTEST_EXTRA}" -T test -V' #ARG BASE_IMG=gcc #ARG COMPILER=g++ From ac67c1380162e1dbe89f2d510855e1c0e2c52a6a Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 14:28:36 -0700 Subject: [PATCH 14/22] Literal ctest extra. --- Dockerfile | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 72837900..67798228 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,6 @@ # SPDX-License-Identifier: (BSD-3-Clause) ############################################################################### -ARG CTEST_EXTRA="-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" - FROM ghcr.io/llnl/radiuss:gcc-11-ubuntu-24.04 AS gcc11_debug ENV GTEST_COLOR=1 COPY . /home/camp/workspace @@ -20,7 +18,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_WARNINGS_AS_ERRORS=On \ -DENABLE_COVERAGE=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest "${CTEST_EXTRA}" -T test -V + cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V FROM ghcr.io/llnl/radiuss:gcc-11-ubuntu-24.04 AS gcc11 ENV GTEST_COLOR=1 @@ -31,7 +29,7 @@ RUN cmake -G Ninja -B build \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest "${CTEST_EXTRA}" -T test -V + cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V FROM ghcr.io/llnl/radiuss:gcc-14-ubuntu-24.04 AS gcc14 ENV GTEST_COLOR=1 @@ -42,7 +40,7 @@ RUN cmake -G Ninja -B build \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest "${CTEST_EXTRA}" -T test -V + cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V FROM ghcr.io/llnl/radiuss:clang-19-ubuntu-24.04 AS clang19 ENV GTEST_COLOR=1 @@ -54,7 +52,7 @@ RUN cmake -G Ninja -B build \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest "${CTEST_EXTRA}" -T test -V + cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V FROM nvidia/cuda:12.0.0-devel-ubuntu22.04 AS nvcc12 ENV GTEST_COLOR=1 @@ -69,7 +67,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_CUDA=On \ -DCMAKE_CUDA_ARCHITECTURES=70 .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest "${CTEST_EXTRA}" -T test -V + cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V FROM nvidia/cuda:12.2.2-devel-ubuntu22.04 AS nvcc12_debug ENV GTEST_COLOR=1 @@ -84,7 +82,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_CUDA=On \ -DCMAKE_CUDA_ARCHITECTURES=70 .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest "${CTEST_EXTRA}" -T test -V + cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V FROM rocm/dev-ubuntu-24.04:6.4.3 AS rocm6_4_3 ENV GTEST_COLOR=1 @@ -102,7 +100,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_OPENMP=Off \ -DENABLE_CUDA=Off .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest "${CTEST_EXTRA}" -T test -V + cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V FROM rocm/dev-ubuntu-24.04:latest AS rocm_latest ENV GTEST_COLOR=1 @@ -120,7 +118,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_OPENMP=Off \ -DENABLE_CUDA=Off .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest "${CTEST_EXTRA}" -T test -V + cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V FROM intel/oneapi:latest AS sycl ENV GTEST_COLOR=1 @@ -136,7 +134,7 @@ RUN /bin/bash -lc 'source ~/setup_env.sh && \ -DENABLE_WARNINGS=On \ -DENABLE_SYCL=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest "${CTEST_EXTRA}" -T test -V' + cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V' #ARG BASE_IMG=gcc #ARG COMPILER=g++ From 8040a317946a80ceb9abae5003d92e5721510252 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 14:39:12 -0700 Subject: [PATCH 15/22] Change sycl to use Radiuss Docker image. --- Dockerfile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 67798228..3deec26d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -120,21 +120,21 @@ RUN cmake -G Ninja -B build \ cmake --build build --verbose --parallel 4 && \ cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V -FROM intel/oneapi:latest AS sycl +FROM ghcr.io/llnl/radiuss:ubuntu-24.04-intel-2024.2 AS sycl ENV GTEST_COLOR=1 -RUN bash -c 'echo . /opt/intel/oneapi/setvars.sh >> ~/setup_env.sh' -COPY scripts/get-deps.sh /tmp/get-deps.sh -RUN bash /tmp/get-deps.sh COPY . /home/camp/workspace WORKDIR /home/camp/workspace/build -RUN /bin/bash -lc 'source ~/setup_env.sh && \ +RUN /bin/bash -lc 'source /opt/intel/oneapi/setvars.sh 2>&1 && \ + export PATH=/opt/intel/oneapi/compiler/2024.2/bin/:$PATH && \ + export LD_LIBRARY_PATH=/opt/intel/oneapi/2024.2/lib:$LD_LIBRARY_PATH && \ cmake -G Ninja -B build \ - -DCMAKE_CXX_COMPILER=dpcpp \ + -DCMAKE_CXX_COMPILER=icpx \ + -DCMAKE_CXX_FLAGS="-fsycl -fsycl-unnamed-lambda" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On \ -DENABLE_SYCL=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V' + cd build && ctest -E "(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)" -T test -V' #ARG BASE_IMG=gcc #ARG COMPILER=g++ From 2c0d48fb90543f065a72541e5afae2b6ceb6a8c4 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 14:55:45 -0700 Subject: [PATCH 16/22] Switch standard CUDA and ROCM to use Radiuss Docker images. --- Dockerfile | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3deec26d..db30ce1d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -54,10 +54,8 @@ RUN cmake -G Ninja -B build \ cmake --build build --verbose --parallel 4 && \ cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V -FROM nvidia/cuda:12.0.0-devel-ubuntu22.04 AS nvcc12 +FROM ghcr.io/llnl/radiuss:cuda-12-6-ubuntu-24.04 AS nvcc12 ENV GTEST_COLOR=1 -COPY scripts/get-deps.sh /tmp/get-deps.sh -RUN bash /tmp/get-deps.sh COPY . /home/camp/workspace WORKDIR /home/camp/workspace/build RUN cmake -G Ninja -B build \ @@ -84,18 +82,17 @@ RUN cmake -G Ninja -B build \ cmake --build build --verbose --parallel 4 && \ cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V -FROM rocm/dev-ubuntu-24.04:6.4.3 AS rocm6_4_3 +FROM ghcr.io/llnl/radiuss:hip-6.4.3-ubuntu-24.04 AS rocm6_4_3 ENV GTEST_COLOR=1 -ENV LD_LIBRARY_PATH=/opt/rocm/lib:${LD_LIBRARY_PATH} -COPY scripts/get-deps.sh /tmp/get-deps.sh -RUN bash /tmp/get-deps.sh +ENV HCC_AMDGPU_TARGET=gfx900 +ENV LD_LIBRARY_PATH=/opt/rocm-6.4.3/lib:${LD_LIBRARY_PATH} COPY . /home/camp/workspace WORKDIR /home/camp/workspace/build RUN cmake -G Ninja -B build \ - -DCMAKE_CXX_COMPILER=/opt/rocm/llvm/bin/amdclang++ \ + -DCMAKE_CXX_COMPILER=/opt/rocm-6.4.3/bin/amdclang++ \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On \ - -DROCM_PATH=/opt/rocm \ + -DROCM_PATH=/opt/rocm-6.4.3 \ -DENABLE_HIP=On \ -DENABLE_OPENMP=Off \ -DENABLE_CUDA=Off .. && \ From 263d825050b7b4810abff0670e2922c83b325742 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 14:56:07 -0700 Subject: [PATCH 17/22] Use build_docker base name. --- .github/workflows/build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4938ab98..c36c9cf3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,7 +3,6 @@ on: name: Build jobs: build_docker: - name: Docker (${{ matrix.name }}) strategy: fail-fast: false matrix: From 2dd55f269792f813521ba9a0cc95912646f27903 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 15:12:03 -0700 Subject: [PATCH 18/22] Clean up build.yml --- .github/workflows/build.yml | 92 ------------------------------------- 1 file changed, 92 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c36c9cf3..46fe12c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,87 +25,6 @@ jobs: target: rocm_latest - name: sycl target: sycl -# - name: gcc11-debug -# base_img: gcc -# ver: 11 -# compiler: g++ -# pre_cmd: "true" -# build_type: Debug -# cmake_extra: -DENABLE_WARNINGS_AS_ERRORS=On -DENABLE_COVERAGE=On -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: gcc11 -# base_img: gcc -# ver: 11 -# compiler: g++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: "" -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: gcc-14 -# base_img: gcc -# ver: 14 -# compiler: g++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: "" -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: clang19 -# base_img: clang -# ver: 19 -# compiler: clang++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: "" -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: nvcc12 -# base_img: nvcc -# ver: 12.0.0 -# compiler: g++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: nvcc12-debug -# base_img: nvcc -# ver: 12.2.2 -# compiler: g++ -# pre_cmd: "true" -# build_type: Debug -# cmake_extra: -DENABLE_CUDA=On -DCMAKE_CUDA_ARCHITECTURES=70 -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: rocm-6.4.3 -# base_img: rocm -# ver: 6.4.3 -# compiler: /opt/rocm/llvm/bin/amdclang++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: rocm-latest -# base_img: rocm -# ver: latest -# compiler: /opt/rocm/llvm/bin/amdclang++ -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: -DROCM_PATH=/opt/rocm -DENABLE_HIP=On -DENABLE_OPENMP=Off -DENABLE_CUDA=Off -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 -# - name: sycl -# base_img: oneapi -# ver: latest -# compiler: dpcpp -# pre_cmd: "true" -# build_type: RelWithDebInfo -# cmake_extra: -DENABLE_SYCL=On -# ctest_extra: "-E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)'" -# parallel: 4 runs-on: ubuntu-latest steps: - run: | @@ -121,17 +40,6 @@ jobs: - uses: docker/build-push-action@v6 with: target: ${{ matrix.target }} - #target: test - #build-args: | - # BASE_IMG=${{ matrix.base_img }} - # VER=${{ matrix.ver }} - # COMPILER=${{ matrix.compiler }} - # PRE_CMD=${{ matrix.pre_cmd }} - # BUILD_TYPE=${{ matrix.build_type }} - # CMAKE_EXTRA=${{ matrix.cmake_extra }} - # CTEST_EXTRA=${{ matrix.ctest_extra }} - # PARALLEL=${{ matrix.parallel }} - # CMAKE_BUILD_OPTS=--build build --verbose --parallel ${{ matrix.parallel }} build_mac: runs-on: macos-latest steps: From 0923d6c7d708fa13de5c8c07fb92759f7dc17ead Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 15:12:32 -0700 Subject: [PATCH 19/22] Revert to CUDA Docker image from Nvidia. Clean up Dockerfile. --- Dockerfile | 68 +++--------------------------------------------------- 1 file changed, 3 insertions(+), 65 deletions(-) diff --git a/Dockerfile b/Dockerfile index db30ce1d..0e5b3b61 100644 --- a/Dockerfile +++ b/Dockerfile @@ -54,8 +54,10 @@ RUN cmake -G Ninja -B build \ cmake --build build --verbose --parallel 4 && \ cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V -FROM ghcr.io/llnl/radiuss:cuda-12-6-ubuntu-24.04 AS nvcc12 +FROM nvidia/cuda:12.0.0-devel-ubuntu22.04 AS nvcc12 ENV GTEST_COLOR=1 +COPY scripts/get-deps.sh /tmp/get-deps.sh +RUN bash /tmp/get-deps.sh COPY . /home/camp/workspace WORKDIR /home/camp/workspace/build RUN cmake -G Ninja -B build \ @@ -133,67 +135,3 @@ RUN /bin/bash -lc 'source /opt/intel/oneapi/setvars.sh 2>&1 && \ cmake --build build --verbose --parallel 4 && \ cd build && ctest -E "(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)" -T test -V' -#ARG BASE_IMG=gcc -#ARG COMPILER=g++ -#ARG VER=latest -#ARG PRE_CMD="true" -#ARG BUILD_TYPE=RelWithDebInfo -#ARG CTEST_EXTRA="-E '(.*offload|blt.*smoke)'" -#ARG CTEST_OPTIONS="${CTEST_EXTRA} -T test -V " -#ARG CMAKE_EXTRA="" -#ARG CMAKE_OPTIONS="-G Ninja -B build ${CMAKE_EXTRA} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DENABLE_WARNINGS=On" -#ARG PARALLEL=4 -#ARG BUILD_EXTRA="" -#ARG CMAKE_BUILD_OPTS="--build build --verbose --parallel ${PARALLEL} ${BUILD_EXTRA}" -#ARG CUDA_IMG_SUFFIX="-devel-ubuntu22.04" -# -#### start compiler base images ### -## there is no official container in the hub, but there is an official script -## to install clang/llvm by version, installs a bit more than we need, but we -## do not have to maintain it, so I'm alright with that -#FROM ghcr.io/llnl/radiuss:clang-${VER}-ubuntu-24.04 AS clang -#ENV LD_LIBRARY_PATH=/opt/view/lib -# -#FROM ghcr.io/llnl/radiuss:gcc-${VER}-ubuntu-24.04 AS gcc -# -#FROM nvidia/cuda:${VER}${CUDA_IMG_SUFFIX} AS nvcc -# -#FROM nvcr.io/nvidia/nvhpc:23.3-devel-cuda12.0-ubuntu24.04 AS nvhpc -# -#FROM rocm/dev-ubuntu-24.04:${VER} AS rocm -#ENV LD_LIBRARY_PATH=/opt/rocm/lib:${LD_LIBRARY_PATH} -# -## The intel-runtime container no longer works, use the fat one -#FROM intel/oneapi:${VER} AS oneapi -#RUN bash -c 'echo . /opt/intel/oneapi/setvars.sh >> ~/setup_env.sh' -#### end compiler base images ### -# -#FROM ${BASE_IMG} AS base -#ARG VER -#ARG BASE_IMG -#ENV GTEST_COLOR=1 -## Only install CMake/Ninja for images that don't reliably include them. -## (gcc/clang radiuss images already provide a full toolchain.) -#COPY scripts/get-deps.sh /tmp/get-deps.sh -#RUN /bin/bash -lc 'if [[ "${BASE_IMG}" == "nvcc" || "${BASE_IMG}" == "rocm" || "${BASE_IMG}" == "oneapi" ]]; then bash /tmp/get-deps.sh; fi' -#COPY . /home/camp/workspace -#WORKDIR /home/camp/workspace/build -# -#FROM base AS test -#ARG PRE_CMD -#ARG CTEST_OPTIONS -#ARG CMAKE_OPTIONS -#ARG CMAKE_BUILD_OPTS -#ARG COMPILER -#ENV COMPILER=${COMPILER:-g++} -#RUN /bin/bash -lc '[[ -f ~/setup_env.sh ]] && source ~/setup_env.sh ; \ -# CXX="${COMPILER:-g++}" ; \ -# if [[ "${CMAKE_OPTIONS}" == *"sanitize=address"* ]]; then \ -# sudo apt-get install libclang-rt-${VER}-dev -fy; \ -# fi ; \ -# ${PRE_CMD} && cmake ${CMAKE_OPTIONS} -DCMAKE_CXX_COMPILER="${CXX}" ..' -#RUN /bin/bash -c "[[ -f ~/setup_env.sh ]] && source ~/setup_env.sh ; ${PRE_CMD} && cmake ${CMAKE_BUILD_OPTS}" -#RUN /bin/bash -c "[[ -f ~/setup_env.sh ]] && source ~/setup_env.sh ; ${PRE_CMD} && cd build && ctest ${CTEST_OPTIONS}" -# -## this is here to stop azure from downloading oneapi for every test -#FROM alpine AS download_fast From 24b3713a36cc4b01b1281ce4659dc2070d120e21 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 15:29:33 -0700 Subject: [PATCH 20/22] Just use targets, not names. --- .github/workflows/build.yml | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 46fe12c2..f4563f74 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,25 +6,7 @@ jobs: strategy: fail-fast: false matrix: - include: - - name: gcc11-debug - target: gcc11_debug - - name: gcc11 - target: gcc11 - - name: gcc-14 - target: gcc14 - - name: clang19 - target: clang19 - - name: nvcc12 - target: nvcc12 - - name: nvcc12-debug - target: nvcc12_debug - - name: rocm6_4_3 - target: rocm6_4_3 - - name: rocm_latest - target: rocm_latest - - name: sycl - target: sycl + target: [gcc11_debug, gcc11, gcc14, clang19, nvcc12, nvcc12_debug, rocm6_4_3, rocm_latest, sycl] runs-on: ubuntu-latest steps: - run: | From d4321df39e3d286ea7e081c61902c1599438aefa Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Wed, 22 Jul 2026 16:12:18 -0700 Subject: [PATCH 21/22] Run tests for CPU, but not for GPU. Clean build dir. --- Dockerfile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0e5b3b61..7119b1d6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,8 @@ RUN cmake -G Ninja -B build \ -DENABLE_WARNINGS_AS_ERRORS=On \ -DENABLE_COVERAGE=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V + cd build && ctest -T test --output-on-failure && cd .. && \ + cmake --build build --target clean FROM ghcr.io/llnl/radiuss:gcc-11-ubuntu-24.04 AS gcc11 ENV GTEST_COLOR=1 @@ -29,7 +30,8 @@ RUN cmake -G Ninja -B build \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V + cd build && ctest -T test --output-on-failure && cd .. && \ + cmake --build build --target clean FROM ghcr.io/llnl/radiuss:gcc-14-ubuntu-24.04 AS gcc14 ENV GTEST_COLOR=1 @@ -40,7 +42,8 @@ RUN cmake -G Ninja -B build \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V + cd build && ctest -T test --output-on-failure && cd .. && \ + cmake --build build --target clean FROM ghcr.io/llnl/radiuss:clang-19-ubuntu-24.04 AS clang19 ENV GTEST_COLOR=1 @@ -52,7 +55,8 @@ RUN cmake -G Ninja -B build \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V + cd build && ctest -T test --output-on-failure && cd .. && \ + cmake --build build --target clean FROM nvidia/cuda:12.0.0-devel-ubuntu22.04 AS nvcc12 ENV GTEST_COLOR=1 @@ -67,7 +71,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_CUDA=On \ -DCMAKE_CUDA_ARCHITECTURES=70 .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V + cmake --build build --target clean FROM nvidia/cuda:12.2.2-devel-ubuntu22.04 AS nvcc12_debug ENV GTEST_COLOR=1 @@ -82,7 +86,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_CUDA=On \ -DCMAKE_CUDA_ARCHITECTURES=70 .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V + cmake --build build --target clean FROM ghcr.io/llnl/radiuss:hip-6.4.3-ubuntu-24.04 AS rocm6_4_3 ENV GTEST_COLOR=1 @@ -99,7 +103,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_OPENMP=Off \ -DENABLE_CUDA=Off .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V + cmake --build build --target clean FROM rocm/dev-ubuntu-24.04:latest AS rocm_latest ENV GTEST_COLOR=1 @@ -117,7 +121,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_OPENMP=Off \ -DENABLE_CUDA=Off .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest -E '(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)' -T test -V + cmake --build build --target clean FROM ghcr.io/llnl/radiuss:ubuntu-24.04-intel-2024.2 AS sycl ENV GTEST_COLOR=1 @@ -133,5 +137,5 @@ RUN /bin/bash -lc 'source /opt/intel/oneapi/setvars.sh 2>&1 && \ -DENABLE_WARNINGS=On \ -DENABLE_SYCL=On .. && \ cmake --build build --verbose --parallel 4 && \ - cd build && ctest -E "(.*offload|blt.*smoke|cuda_.*|hip_.*|CampEvent|CampResource)" -T test -V' + cmake --build build --target clean' From 1d4122c51ec84936fe0a7c643bdbccfe140631e0 Mon Sep 17 00:00:00 2001 From: Robert Chen Date: Thu, 23 Jul 2026 07:54:46 -0700 Subject: [PATCH 22/22] Better form for library path. --- Dockerfile | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7119b1d6..73fbf8c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,16 +47,16 @@ RUN cmake -G Ninja -B build \ FROM ghcr.io/llnl/radiuss:clang-19-ubuntu-24.04 AS clang19 ENV GTEST_COLOR=1 -ENV LD_LIBRARY_PATH=/opt/view/lib COPY . /home/camp/workspace WORKDIR /home/camp/workspace/build -RUN cmake -G Ninja -B build \ +RUN /bin/bash -lc 'export LD_LIBRARY_PATH=/opt/view/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} && \ + cmake -G Ninja -B build \ -DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On .. && \ cmake --build build --verbose --parallel 4 && \ cd build && ctest -T test --output-on-failure && cd .. && \ - cmake --build build --target clean + cmake --build build --target clean' FROM nvidia/cuda:12.0.0-devel-ubuntu22.04 AS nvcc12 ENV GTEST_COLOR=1 @@ -91,10 +91,10 @@ RUN cmake -G Ninja -B build \ FROM ghcr.io/llnl/radiuss:hip-6.4.3-ubuntu-24.04 AS rocm6_4_3 ENV GTEST_COLOR=1 ENV HCC_AMDGPU_TARGET=gfx900 -ENV LD_LIBRARY_PATH=/opt/rocm-6.4.3/lib:${LD_LIBRARY_PATH} COPY . /home/camp/workspace WORKDIR /home/camp/workspace/build -RUN cmake -G Ninja -B build \ +RUN /bin/bash -lc 'export LD_LIBRARY_PATH=/opt/rocm-6.4.3/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} && \ + cmake -G Ninja -B build \ -DCMAKE_CXX_COMPILER=/opt/rocm-6.4.3/bin/amdclang++ \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On \ @@ -103,16 +103,16 @@ RUN cmake -G Ninja -B build \ -DENABLE_OPENMP=Off \ -DENABLE_CUDA=Off .. && \ cmake --build build --verbose --parallel 4 && \ - cmake --build build --target clean + cmake --build build --target clean' FROM rocm/dev-ubuntu-24.04:latest AS rocm_latest ENV GTEST_COLOR=1 -ENV LD_LIBRARY_PATH=/opt/rocm/lib:${LD_LIBRARY_PATH} COPY scripts/get-deps.sh /tmp/get-deps.sh RUN bash /tmp/get-deps.sh COPY . /home/camp/workspace WORKDIR /home/camp/workspace/build -RUN cmake -G Ninja -B build \ +RUN /bin/bash -lc 'export LD_LIBRARY_PATH=/opt/rocm/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} && \ + cmake -G Ninja -B build \ -DCMAKE_CXX_COMPILER=/opt/rocm/llvm/bin/amdclang++ \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_WARNINGS=On \ @@ -121,7 +121,7 @@ RUN cmake -G Ninja -B build \ -DENABLE_OPENMP=Off \ -DENABLE_CUDA=Off .. && \ cmake --build build --verbose --parallel 4 && \ - cmake --build build --target clean + cmake --build build --target clean' FROM ghcr.io/llnl/radiuss:ubuntu-24.04-intel-2024.2 AS sycl ENV GTEST_COLOR=1 @@ -129,7 +129,7 @@ COPY . /home/camp/workspace WORKDIR /home/camp/workspace/build RUN /bin/bash -lc 'source /opt/intel/oneapi/setvars.sh 2>&1 && \ export PATH=/opt/intel/oneapi/compiler/2024.2/bin/:$PATH && \ - export LD_LIBRARY_PATH=/opt/intel/oneapi/2024.2/lib:$LD_LIBRARY_PATH && \ + export LD_LIBRARY_PATH=/opt/intel/oneapi/2024.2/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} && \ cmake -G Ninja -B build \ -DCMAKE_CXX_COMPILER=icpx \ -DCMAKE_CXX_FLAGS="-fsycl -fsycl-unnamed-lambda" \ @@ -138,4 +138,3 @@ RUN /bin/bash -lc 'source /opt/intel/oneapi/setvars.sh 2>&1 && \ -DENABLE_SYCL=On .. && \ cmake --build build --verbose --parallel 4 && \ cmake --build build --target clean' -