From 12a4c7a9359e69948177bd4e6a25cd0cf41cc808 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 08:29:41 +0100 Subject: [PATCH 01/99] First test towards CLANG ci workflow --- .../tests_cmake_t8code_w_other_compilers.yml | 126 ++++++++++++ .github/workflows/tests_cmake_testsuite.yml | 181 ++++++++++-------- 2 files changed, 227 insertions(+), 80 deletions(-) create mode 100644 .github/workflows/tests_cmake_t8code_w_other_compilers.yml diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml new file mode 100644 index 0000000000..d480fc644c --- /dev/null +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -0,0 +1,126 @@ +name: CMake tests t8code with shipped submodules + + +# This file is part of t8code. +# t8code is a C library to manage a collection (a forest) of multiple +# connected adaptive space-trees of general element types in parallel. +# +# Copyright (C) 2024 the developers +# +# t8code is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# t8code is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with t8code; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +env: + DEBUG_CONFIG: "-O1" + +on: + workflow_call: + inputs: + MAKEFLAGS: + required: true + type: string + description: 'Make flags to use for compilation (like -j4)' + MPI: + required: true + type: string + description: 'Use MPI for compilation (ON/OFF)' + BUILD_TYPE: + required: true + type: string + description: 'Build type (Release/Debug)' + TEST_LEVEL: + required: true + type: string + description: 'Test level used for configuring (T8_TEST_LEVEL_FULL, T8_TEST_LEVEL_MEDIUM, or T8_TEST_LEVEL_BASIC)' + default: 'T8_TEST_LEVEL_FULL' + COMPILER: + required: true + type: string + description: 'Compiler (CLANG)' + +jobs: + t8code_cmake_tests: + timeout-minutes: 60 + runs-on: ubuntu-latest + container: dlramr/t8code-ubuntu:t8-dependencies + steps: +# +# Setup +# + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + - name: Update packages + run: sudo apt-get update && sudo apt-get upgrade -y + # MYTODO: Somehow make github use CLANG here :-) + - name: Check clang version + run: clang --version + # This seems to be necessary because of the docker container +# - name: disable ownership checks +# run: git config --global --add safe.directory '*' +# - name: init submodules +# run: git submodule init +# - name: update submodules +# run: git submodule update +# - name: Get input vars +# run: export MAKEFLAGS="${{ inputs.MAKEFLAGS }}" +# && export MPI="${{ inputs.MPI }}" +# && export BUILD_TYPE="${{ inputs.BUILD_TYPE }}" +# && echo MAKEFLAGS="$MAKEFLAGS" >> $GITHUB_ENV +# && echo MPI="$MPI" >> $GITHUB_ENV +# && echo BUILD_TYPE="$BUILD_TYPE" >> $GITHUB_ENV +# # +# # T8CODE +# # +# # build config vars +# - name: Set test level +# run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" +# && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV +# - name: build config variables +# run: export CONFIG_OPTIONS="${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=ON -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" +# && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV +# # cmake and test +# - name: Printing MPI compiler info +# run: mpicc --version && mpirun --version +# - name: Printing GCC compiler info +# run: gcc --version && g++ --version +# - name: echo cmake line +# run: echo cmake ../ $CONFIG_OPTIONS +# - name: cmake +# run: mkdir build && cd build && cmake ../ $CONFIG_OPTIONS +# - name: OnFailUploadLog +# if: failure() +# uses: actions/upload-artifact@v5 +# with: +# name: cmake_w_submodules_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log +# path: build/CMakeFiles/CMakeOutput.log +# - name: ninja +# run: cd build && ninja $MAKEFLAGS +# - name: ninja install +# run: cd build && ninja install $MAKEFLAGS +# - name: serial tests (if MPI is enabled) +# run: cd build && ctest $MAKEFLAGS -R _serial +# if: ${{ inputs.MPI == 'ON' }} +# - name: parallel tests (if MPI is enabled) +# run: cd build && ctest -R _parallel +# if: ${{ inputs.MPI == 'ON' }} +# - name: tests (if MPI is disabled) +# run: cd build && ctest $MAKEFLAGS +# if: ${{ inputs.MPI == 'OFF' }} +# - name: OnFailUploadLog +# if: failure() +# uses: actions/upload-artifact@v5 +# with: +# name: test-suite_w_submodules_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log +# path: build/Testing/Temporary/LastTest.log diff --git a/.github/workflows/tests_cmake_testsuite.yml b/.github/workflows/tests_cmake_testsuite.yml index c1c9535700..feec707388 100644 --- a/.github/workflows/tests_cmake_testsuite.yml +++ b/.github/workflows/tests_cmake_testsuite.yml @@ -123,107 +123,128 @@ jobs: CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once MPI: ${{ matrix.MPI }} - # Run parallel tests for sc and p4est with and without MPI - sc_p4est_tests: - needs: preparation - uses: ./.github/workflows/tests_cmake_sc_p4est.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} + # # Run parallel tests for sc and p4est with and without MPI + # sc_p4est_tests: + # needs: preparation + # uses: ./.github/workflows/tests_cmake_sc_p4est.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} - # Run t8code tests with and without MPI and in serial and debug mode - t8code_tests: - needs: preparation - uses: ./.github/workflows/tests_cmake_t8code.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - BUILD_TYPE: [Debug, Release] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} - BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # # Run t8code tests with and without MPI and in serial and debug mode + # t8code_tests: + # needs: preparation + # uses: ./.github/workflows/tests_cmake_t8code.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} + # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # Run t8code linkage tests with and without MPI and in serial and debug mode - t8code_linkage_tests: - needs: preparation - uses: ./.github/workflows/tests_cmake_t8code_linkage.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - BUILD_TYPE: [Debug, Release] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} - BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # # Run t8code linkage tests with and without MPI and in serial and debug mode + # t8code_linkage_tests: + # needs: preparation + # uses: ./.github/workflows/tests_cmake_t8code_linkage.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} + # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + + # # Run t8code linkage tests with and without MPI and in serial and debug mode + # t8code_api_tests: + # needs: preparation + # uses: ./.github/workflows/tests_cmake_t8code_api.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [ON] # For now the fortran API only supports building with MPI + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} + # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + + # # Run Valgrind check for every t8code test binary. + # t8code_valgrind_tests: + # if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. + # needs: preparation + # uses: ./.github/workflows/tests_cmake_valgrind.yml + # with: + # MAKEFLAGS: -j4 + # MPI: ON + # BUILD_TYPE: Debug + # TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. - # Run t8code linkage tests with and without MPI and in serial and debug mode - t8code_api_tests: - needs: preparation - uses: ./.github/workflows/tests_cmake_t8code_api.yml + # # Generate code coverage and deploy to Codecov. + # t8code_code_coverage: + # if: (github.event_name != 'merge_group') + # needs: preparation + # uses: ./.github/workflows/code_coverage.yml + # with: + # MAKEFLAGS: -j4 + # MPI: ON + # BUILD_TYPE: Debug + # TEST_LEVEL: T8_TEST_LEVEL_BASIC + # secrets: + # CODE_COV: ${{ secrets.CODE_COV }} + + # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. + t8code_w_other_compilers_tests: + needs: fine_grained_trigger + secrets: inherit + if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} + uses: ./.github/workflows/tests_cmake_t8code_w_shipped_submodules.yml strategy: fail-fast: false - matrix: - MPI: [ON] # For now the fortran API only supports building with MPI - BUILD_TYPE: [Debug, Release] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} - BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - - # Run Valgrind check for every t8code test binary. - t8code_valgrind_tests: - if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. - needs: preparation - uses: ./.github/workflows/tests_cmake_valgrind.yml + # matrix: + # MPI: [OFF, ON] + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 with: MAKEFLAGS: -j4 MPI: ON BUILD_TYPE: Debug - TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + COMPILER: CLANG - # Generate code coverage and deploy to Codecov. - t8code_code_coverage: - if: (github.event_name != 'merge_group') - needs: preparation - uses: ./.github/workflows/code_coverage.yml - with: - MAKEFLAGS: -j4 - MPI: ON - BUILD_TYPE: Debug - TEST_LEVEL: T8_TEST_LEVEL_BASIC - secrets: - CODE_COV: ${{ secrets.CODE_COV }} - # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. t8code_w_shipped_submodules_tests: needs: fine_grained_trigger secrets: inherit if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} - uses: ./.github/workflows/tests_cmake_t8code_w_shipped_submodules.yml + uses: ./.github/workflows/tests_cmake_t8code_w_other_compilers.yml with: MAKEFLAGS: -j4 MPI: ON BUILD_TYPE: Debug TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + t8code_doxygen_check: uses: ./.github/workflows/check_doxygen.yml needs: [preparation, sc_p4est_tests, t8code_tests, t8code_linkage_tests, t8code_api_tests, t8code_w_shipped_submodules_tests] From 1ef437eb2890691b8e79191a2ea78d447c7f185e Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 08:34:45 +0100 Subject: [PATCH 02/99] Try again --- .github/workflows/tests_cmake_testsuite.yml | 38 ++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/tests_cmake_testsuite.yml b/.github/workflows/tests_cmake_testsuite.yml index feec707388..6780c0a8f7 100644 --- a/.github/workflows/tests_cmake_testsuite.yml +++ b/.github/workflows/tests_cmake_testsuite.yml @@ -233,25 +233,25 @@ jobs: COMPILER: CLANG # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. - t8code_w_shipped_submodules_tests: - needs: fine_grained_trigger - secrets: inherit - if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} - uses: ./.github/workflows/tests_cmake_t8code_w_other_compilers.yml - with: - MAKEFLAGS: -j4 - MPI: ON - BUILD_TYPE: Debug - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # t8code_w_shipped_submodules_tests: + # needs: fine_grained_trigger + # secrets: inherit + # if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} + # uses: ./.github/workflows/tests_cmake_t8code_w_other_compilers.yml + # with: + # MAKEFLAGS: -j4 + # MPI: ON + # BUILD_TYPE: Debug + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - t8code_doxygen_check: - uses: ./.github/workflows/check_doxygen.yml - needs: [preparation, sc_p4est_tests, t8code_tests, t8code_linkage_tests, t8code_api_tests, t8code_w_shipped_submodules_tests] + # t8code_doxygen_check: + # uses: ./.github/workflows/check_doxygen.yml + # needs: [preparation, sc_p4est_tests, t8code_tests, t8code_linkage_tests, t8code_api_tests, t8code_w_shipped_submodules_tests] - t8code_tarball: - if: github.event.pull_request.draft == false - uses: ./.github/workflows/build_cmake_tarball.yml - needs: [preparation, sc_p4est_tests, t8code_tests, t8code_linkage_tests, t8code_api_tests, t8code_w_shipped_submodules_tests] - with: - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # t8code_tarball: + # if: github.event.pull_request.draft == false + # uses: ./.github/workflows/build_cmake_tarball.yml + # needs: [preparation, sc_p4est_tests, t8code_tests, t8code_linkage_tests, t8code_api_tests, t8code_w_shipped_submodules_tests] + # with: + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. From d8dfa8056a53f1da12eece7f33356705a97d8cf5 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 08:38:12 +0100 Subject: [PATCH 03/99] Try again --- .github/workflows/tests_cmake_testsuite.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_testsuite.yml b/.github/workflows/tests_cmake_testsuite.yml index 6780c0a8f7..ba893d2fba 100644 --- a/.github/workflows/tests_cmake_testsuite.yml +++ b/.github/workflows/tests_cmake_testsuite.yml @@ -217,7 +217,7 @@ jobs: needs: fine_grained_trigger secrets: inherit if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} - uses: ./.github/workflows/tests_cmake_t8code_w_shipped_submodules.yml + uses: ./.github/workflows/tests_cmake_t8code_w_other_compilers.yml strategy: fail-fast: false # matrix: From 1d12859fa33935bb28335d8d36bfd14d6c330a56 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 08:42:47 +0100 Subject: [PATCH 04/99] Trigger [run ci] --- .github/workflows/tests_cmake_testsuite.yml | 22 ++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests_cmake_testsuite.yml b/.github/workflows/tests_cmake_testsuite.yml index ba893d2fba..c0a2f72304 100644 --- a/.github/workflows/tests_cmake_testsuite.yml +++ b/.github/workflows/tests_cmake_testsuite.yml @@ -51,8 +51,8 @@ concurrency: # - run on draft PRs, if the latest commit message contains '[run ci]' # - run on scheduled runs for the DLR-AMR/t8code repository # - run on all other pull request events -# These conditions are checked in the fine_grained_trigger job. If it completes successfully, it triggers the preparation job, -# which triggers the actual tests. +# These conditions are checked in the fine_grained_trigger job. If it completes successfully, it triggers the preparation job, +# which triggers the actual tests. # The job to build the tarball is only triggered on merge_group events for the DLR-AMR/t8code repository. jobs: @@ -115,14 +115,14 @@ jobs: fail-fast: false matrix: MPI: [OFF, ON] - include: + include: - MAKEFLAGS: -j4 with: MAKEFLAGS: ${{ matrix.MAKEFLAGS }} IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once MPI: ${{ matrix.MPI }} - + # # Run parallel tests for sc and p4est with and without MPI # sc_p4est_tests: # needs: preparation @@ -131,7 +131,7 @@ jobs: # fail-fast: false # matrix: # MPI: [OFF, ON] - # include: + # include: # - MAKEFLAGS: -j4 # with: # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} @@ -146,14 +146,14 @@ jobs: # matrix: # MPI: [OFF, ON] # BUILD_TYPE: [Debug, Release] - # include: + # include: # - MAKEFLAGS: -j4 # with: # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} # MPI: ${{ matrix.MPI }} # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - + # # Run t8code linkage tests with and without MPI and in serial and debug mode # t8code_linkage_tests: # needs: preparation @@ -163,7 +163,7 @@ jobs: # matrix: # MPI: [OFF, ON] # BUILD_TYPE: [Debug, Release] - # include: + # include: # - MAKEFLAGS: -j4 # with: # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} @@ -180,7 +180,7 @@ jobs: # matrix: # MPI: [ON] # For now the fortran API only supports building with MPI # BUILD_TYPE: [Debug, Release] - # include: + # include: # - MAKEFLAGS: -j4 # with: # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} @@ -211,7 +211,7 @@ jobs: # TEST_LEVEL: T8_TEST_LEVEL_BASIC # secrets: # CODE_COV: ${{ secrets.CODE_COV }} - + # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. t8code_w_other_compilers_tests: needs: fine_grained_trigger @@ -223,7 +223,7 @@ jobs: # matrix: # MPI: [OFF, ON] # BUILD_TYPE: [Debug, Release] - # include: + # include: # - MAKEFLAGS: -j4 with: MAKEFLAGS: -j4 From 5aebc56644a42da997ea7ea7d390c3a4dc252393 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 09:10:53 +0100 Subject: [PATCH 05/99] Trigger [run ci] --- .../tests_cmake_t8code_w_other_compilers.yml | 4 +++ .github/workflows/tests_cmake_testsuite.yml | 32 +++++++++---------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index d480fc644c..0ff8423d94 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -63,9 +63,13 @@ jobs: fetch-depth: 0 - name: Update packages run: sudo apt-get update && sudo apt-get upgrade -y + - name: Install CLANG + run: sudo apt install clang # MYTODO: Somehow make github use CLANG here :-) - name: Check clang version run: clang --version + - name: Show MPI version + run: which mpi # This seems to be necessary because of the docker container # - name: disable ownership checks # run: git config --global --add safe.directory '*' diff --git a/.github/workflows/tests_cmake_testsuite.yml b/.github/workflows/tests_cmake_testsuite.yml index c0a2f72304..3568f00d69 100644 --- a/.github/workflows/tests_cmake_testsuite.yml +++ b/.github/workflows/tests_cmake_testsuite.yml @@ -106,22 +106,22 @@ jobs: fi # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. - preparation: - needs: [fine_grained_trigger] - secrets: inherit - if: needs.fine_grained_trigger.outputs.run_ci == 'true' - uses: ./.github/workflows/tests_cmake_preparation.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run - CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once - MPI: ${{ matrix.MPI }} + # preparation: + # needs: [fine_grained_trigger] + # secrets: inherit + # if: needs.fine_grained_trigger.outputs.run_ci == 'true' + # uses: ./.github/workflows/tests_cmake_preparation.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run + # CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once + # MPI: ${{ matrix.MPI }} # # Run parallel tests for sc and p4est with and without MPI # sc_p4est_tests: From bb6d163b124ff727c43ce4995ca0d2884738756d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 09:17:30 +0100 Subject: [PATCH 06/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 0ff8423d94..bbdf0f108c 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -64,7 +64,7 @@ jobs: - name: Update packages run: sudo apt-get update && sudo apt-get upgrade -y - name: Install CLANG - run: sudo apt install clang + run: sudo apt-get install clang -y # MYTODO: Somehow make github use CLANG here :-) - name: Check clang version run: clang --version From 3c903b9f948b6c223e67902c39e295bd1c21e780 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 09:41:20 +0100 Subject: [PATCH 07/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index bbdf0f108c..f1d15e38bb 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -65,11 +65,10 @@ jobs: run: sudo apt-get update && sudo apt-get upgrade -y - name: Install CLANG run: sudo apt-get install clang -y - # MYTODO: Somehow make github use CLANG here :-) - name: Check clang version run: clang --version - name: Show MPI version - run: which mpi + run: which mpicc # This seems to be necessary because of the docker container # - name: disable ownership checks # run: git config --global --add safe.directory '*' From d2c2c9afb8c742e9c543ba2919873b3ebb5ee422 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 09:51:36 +0100 Subject: [PATCH 08/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index f1d15e38bb..28493c4a99 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -67,8 +67,11 @@ jobs: run: sudo apt-get install clang -y - name: Check clang version run: clang --version + # - name: Install another MPI version + # run: | + # sudo apt install -y libopenmpi-dev openmpi-bin - name: Show MPI version - run: which mpicc + run: mpicc --version # This seems to be necessary because of the docker container # - name: disable ownership checks # run: git config --global --add safe.directory '*' From e017db6bb14c6b8bad39a9a4de089d8613f40ccf Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 09:59:06 +0100 Subject: [PATCH 09/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 28493c4a99..e2523eabea 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -67,9 +67,9 @@ jobs: run: sudo apt-get install clang -y - name: Check clang version run: clang --version - # - name: Install another MPI version - # run: | - # sudo apt install -y libopenmpi-dev openmpi-bin + - name: Install another MPI version + run: | + sudo apt install -y libopenmpi-dev openmpi-bin - name: Show MPI version run: mpicc --version # This seems to be necessary because of the docker container From 2c3e72320a31a7a34c460d7fbe30bb91b6607d38 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:03:09 +0100 Subject: [PATCH 10/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index e2523eabea..52ebaa2b31 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -67,11 +67,15 @@ jobs: run: sudo apt-get install clang -y - name: Check clang version run: clang --version + # - name: Set clang as compiler - name: Install another MPI version run: | sudo apt install -y libopenmpi-dev openmpi-bin - name: Show MPI version - run: mpicc --version + run: | + export CC=clang + export CXX=clang++ + mpicc --version # This seems to be necessary because of the docker container # - name: disable ownership checks # run: git config --global --add safe.directory '*' From 70c9fcef63648b0e7d95332bb1bb0806395c2842 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:12:23 +0100 Subject: [PATCH 11/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 52ebaa2b31..d6755c1b1b 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -1,4 +1,4 @@ -name: CMake tests t8code with shipped submodules +name: CMake tests t8code with other compilers # This file is part of t8code. @@ -53,7 +53,7 @@ jobs: t8code_cmake_tests: timeout-minutes: 60 runs-on: ubuntu-latest - container: dlramr/t8code-ubuntu:t8-dependencies + container: ubuntu:20.04 steps: # # Setup From 99017c371230923b2dd8c63a51684aa7c1a76c89 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:14:22 +0100 Subject: [PATCH 12/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index d6755c1b1b..9337fcc5c5 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -62,7 +62,9 @@ jobs: with: fetch-depth: 0 - name: Update packages - run: sudo apt-get update && sudo apt-get upgrade -y + run: | + apt-get install -y sudo + sudo apt-get update && sudo apt-get upgrade -y - name: Install CLANG run: sudo apt-get install clang -y - name: Check clang version From f1858348208f31719f69a303714fbd0357208995 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:16:08 +0100 Subject: [PATCH 13/99] Trigger [run ci] --- .../workflows/tests_cmake_t8code_w_other_compilers.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 9337fcc5c5..12dd89e9fc 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -62,17 +62,15 @@ jobs: with: fetch-depth: 0 - name: Update packages - run: | - apt-get install -y sudo - sudo apt-get update && sudo apt-get upgrade -y + run: apt-get update && apt-get upgrade -y - name: Install CLANG - run: sudo apt-get install clang -y + run: apt-get install clang -y - name: Check clang version run: clang --version # - name: Set clang as compiler - name: Install another MPI version run: | - sudo apt install -y libopenmpi-dev openmpi-bin + apt install -y libopenmpi-dev openmpi-bin - name: Show MPI version run: | export CC=clang From 14abfd88dd435d3ef166fd312624247b38443f15 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:18:15 +0100 Subject: [PATCH 14/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 12dd89e9fc..a0e77af582 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -53,7 +53,7 @@ jobs: t8code_cmake_tests: timeout-minutes: 60 runs-on: ubuntu-latest - container: ubuntu:20.04 + container: ubuntu:latest steps: # # Setup From 44c369e1d76d2b3345135b7e7133a7af5dc3505a Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:21:10 +0100 Subject: [PATCH 15/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index a0e77af582..c056142554 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -53,7 +53,7 @@ jobs: t8code_cmake_tests: timeout-minutes: 60 runs-on: ubuntu-latest - container: ubuntu:latest + container: ubuntu:22.04 steps: # # Setup From 461ceea6001e842fcb4c650a89c9eed1a85a5986 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:22:18 +0100 Subject: [PATCH 16/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index c056142554..57d3ba629d 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -67,6 +67,8 @@ jobs: run: apt-get install clang -y - name: Check clang version run: clang --version + - name: Check whether gcc is there + run: gcc --version # - name: Set clang as compiler - name: Install another MPI version run: | From 87da1e42d6e467ec16fa48289f76eb3069ef0432 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:25:18 +0100 Subject: [PATCH 17/99] Trigger [run ci] --- .../tests_cmake_t8code_w_other_compilers.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 57d3ba629d..79605ce75f 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -64,15 +64,15 @@ jobs: - name: Update packages run: apt-get update && apt-get upgrade -y - name: Install CLANG - run: apt-get install clang -y + run: apt-get install -y clang libopenmpi-dev openmpi-bin - name: Check clang version run: clang --version - - name: Check whether gcc is there - run: gcc --version + # - name: Check whether gcc is there + # run: gcc --version # - name: Set clang as compiler - - name: Install another MPI version - run: | - apt install -y libopenmpi-dev openmpi-bin + # - name: Install another MPI version + # run: | + # apt install -y libopenmpi-dev openmpi-bin - name: Show MPI version run: | export CC=clang From 5a760051435b99e4b3acbe6a4cc45ac74833e63d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:41:09 +0100 Subject: [PATCH 18/99] Trigger [run ci] --- .../workflows/tests_cmake_t8code_w_other_compilers.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 79605ce75f..a07af1b458 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -62,17 +62,11 @@ jobs: with: fetch-depth: 0 - name: Update packages - run: apt-get update && apt-get upgrade -y + run: sudo apt-get update && sudo apt-get upgrade -y - name: Install CLANG - run: apt-get install -y clang libopenmpi-dev openmpi-bin + run: sudo apt-get install clang -y - name: Check clang version run: clang --version - # - name: Check whether gcc is there - # run: gcc --version - # - name: Set clang as compiler - # - name: Install another MPI version - # run: | - # apt install -y libopenmpi-dev openmpi-bin - name: Show MPI version run: | export CC=clang From 9305ce5654a658d3a6441083df1b60a195abed90 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:44:57 +0100 Subject: [PATCH 19/99] Trigger [run ci] --- .../tests_cmake_t8code_w_other_compilers.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index a07af1b458..3bd46af866 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -67,6 +67,17 @@ jobs: run: sudo apt-get install clang -y - name: Check clang version run: clang --version + - name: Install openmpi with CLANG + run: | + mkdir install_ompi_clang + wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz + tar xf openmpi-4.1.6.tar.gz + cd openmpi-4.1.6 + CC=clang CXX=clang++ ./configure --prefix=../install_ompi_clang + make -j$(nproc) + make install + cd .. + export PATH=$(pwd)/install_ompi_clang/bin:$PATH - name: Show MPI version run: | export CC=clang From d8a3d3b843130d4dfaf1ee9b43dd79cfee3f9288 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:46:23 +0100 Subject: [PATCH 20/99] Trigger [run ci] --- .../tests_cmake_t8code_w_other_compilers.yml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 3bd46af866..699deb81ff 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -62,22 +62,22 @@ jobs: with: fetch-depth: 0 - name: Update packages - run: sudo apt-get update && sudo apt-get upgrade -y + run: apt-get update && sudo apt-get upgrade -y - name: Install CLANG - run: sudo apt-get install clang -y + run: apt-get install clang -y - name: Check clang version run: clang --version - name: Install openmpi with CLANG run: | - mkdir install_ompi_clang - wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz - tar xf openmpi-4.1.6.tar.gz - cd openmpi-4.1.6 - CC=clang CXX=clang++ ./configure --prefix=../install_ompi_clang - make -j$(nproc) - make install - cd .. - export PATH=$(pwd)/install_ompi_clang/bin:$PATH + mkdir install_ompi_clang + wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz + tar xf openmpi-4.1.6.tar.gz + cd openmpi-4.1.6 + CC=clang CXX=clang++ ./configure --prefix=../install_ompi_clang + make -j$(nproc) + make install + cd .. + export PATH=$(pwd)/install_ompi_clang/bin:$PATH - name: Show MPI version run: | export CC=clang From 12acf57e9190e222b6897d682d1dfc51ba69d3a9 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:48:06 +0100 Subject: [PATCH 21/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 699deb81ff..955b7f0bc2 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -62,7 +62,7 @@ jobs: with: fetch-depth: 0 - name: Update packages - run: apt-get update && sudo apt-get upgrade -y + run: apt-get update && apt-get upgrade -y - name: Install CLANG run: apt-get install clang -y - name: Check clang version From d2ca2d3e5e591ab736d4dd1b04925c290cdff18d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:50:14 +0100 Subject: [PATCH 22/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 955b7f0bc2..625c855d05 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -63,6 +63,8 @@ jobs: fetch-depth: 0 - name: Update packages run: apt-get update && apt-get upgrade -y + - name: Install some basic packages + run: apt-get install -y wget tar - name: Install CLANG run: apt-get install clang -y - name: Check clang version From a82a9f2b24d6df658bb79cb73273cba991bde796 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 10:53:13 +0100 Subject: [PATCH 23/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 625c855d05..1b25512208 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -72,14 +72,15 @@ jobs: - name: Install openmpi with CLANG run: | mkdir install_ompi_clang + export OMPI_INSTALL_PATH=$(pwd)/install_ompi_clang wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz tar xf openmpi-4.1.6.tar.gz cd openmpi-4.1.6 - CC=clang CXX=clang++ ./configure --prefix=../install_ompi_clang + CC=clang CXX=clang++ ./configure --prefix=$OMPI_INSTALL_PATH make -j$(nproc) make install cd .. - export PATH=$(pwd)/install_ompi_clang/bin:$PATH + export PATH=$OMPI_INSTALL_PATH/bin:$PATH - name: Show MPI version run: | export CC=clang From 4d853ac436edbb37129e479c5d1c6f00451284fc Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 11:02:22 +0100 Subject: [PATCH 24/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 1b25512208..edeccf1c72 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -64,7 +64,7 @@ jobs: - name: Update packages run: apt-get update && apt-get upgrade -y - name: Install some basic packages - run: apt-get install -y wget tar + run: apt-get install -y wget tar lld make libc6-dev libc++-dev libc++abi-dev - name: Install CLANG run: apt-get install clang -y - name: Check clang version From 58fde706b4c53c3acf1e2219d257c3c9125f697b Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 11:10:28 +0100 Subject: [PATCH 25/99] Trigger [run ci] --- .../tests_cmake_t8code_w_other_compilers.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index edeccf1c72..1140e46cd5 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -64,7 +64,14 @@ jobs: - name: Update packages run: apt-get update && apt-get upgrade -y - name: Install some basic packages - run: apt-get install -y wget tar lld make libc6-dev libc++-dev libc++abi-dev + run: | + apt-get install -y wget tar lld make \ + libc6-dev libc++-dev libc++abi-dev \ + pkg-config \ + zlib1g-dev \ + libssl-dev \ + bzip2-dev \ + sqlite3-dev \ - name: Install CLANG run: apt-get install clang -y - name: Check clang version @@ -80,9 +87,10 @@ jobs: make -j$(nproc) make install cd .. - export PATH=$OMPI_INSTALL_PATH/bin:$PATH + export PATH=$OMPI_INSTALL_PATH/bin:$PATH >> $GITHUB_ENV - name: Show MPI version run: | + echo $PATH export CC=clang export CXX=clang++ mpicc --version From 762b6a53335735c1b43913e21f3a604b2eb33ab7 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 11:24:45 +0100 Subject: [PATCH 26/99] Trigger [run ci] --- .../workflows/tests_cmake_t8code_w_other_compilers.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 1140e46cd5..c9d7f762ae 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -67,11 +67,11 @@ jobs: run: | apt-get install -y wget tar lld make \ libc6-dev libc++-dev libc++abi-dev \ - pkg-config \ - zlib1g-dev \ - libssl-dev \ - bzip2-dev \ - sqlite3-dev \ + pkg-config + # zlib1g-dev \ + # libssl-dev \ + # bzip2-dev \ + # sqlite3-dev \ - name: Install CLANG run: apt-get install clang -y - name: Check clang version From 3f4daba2fd96d84cf450be3cc0ee11a86e0a8a80 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 11:38:04 +0100 Subject: [PATCH 27/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index c9d7f762ae..db836dd120 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -87,7 +87,9 @@ jobs: make -j$(nproc) make install cd .. + echo "OMPI_INSTALL_PATH= ${OMPI_INSTALL_PATH}" export PATH=$OMPI_INSTALL_PATH/bin:$PATH >> $GITHUB_ENV + echo "PATH= ${PATH}" - name: Show MPI version run: | echo $PATH From 08f9fc108ade1ae638f57f464c00040843c80af1 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 11:49:28 +0100 Subject: [PATCH 28/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index db836dd120..b12805af12 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -86,10 +86,9 @@ jobs: CC=clang CXX=clang++ ./configure --prefix=$OMPI_INSTALL_PATH make -j$(nproc) make install - cd .. echo "OMPI_INSTALL_PATH= ${OMPI_INSTALL_PATH}" - export PATH=$OMPI_INSTALL_PATH/bin:$PATH >> $GITHUB_ENV - echo "PATH= ${PATH}" + ls $OMPI_INSTALL_PATH + echo "${OMPI_INSTALL_PATH}"" >> $GITHUB_PATH - name: Show MPI version run: | echo $PATH From f2d002d7de8ab177f75ba2b3b21fab25804862a0 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 12:05:03 +0100 Subject: [PATCH 29/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index b12805af12..cbb4ce17bb 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -88,7 +88,7 @@ jobs: make install echo "OMPI_INSTALL_PATH= ${OMPI_INSTALL_PATH}" ls $OMPI_INSTALL_PATH - echo "${OMPI_INSTALL_PATH}"" >> $GITHUB_PATH + echo "${OMPI_INSTALL_PATH}" >> $GITHUB_PATH - name: Show MPI version run: | echo $PATH From 55a103bf1291e9a3adcb57de2ea2fcd2441e5b2e Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 12:14:33 +0100 Subject: [PATCH 30/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index cbb4ce17bb..5e9953adab 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -87,8 +87,8 @@ jobs: make -j$(nproc) make install echo "OMPI_INSTALL_PATH= ${OMPI_INSTALL_PATH}" - ls $OMPI_INSTALL_PATH - echo "${OMPI_INSTALL_PATH}" >> $GITHUB_PATH + ls $OMPI_INSTALL_PATH/bin + echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - name: Show MPI version run: | echo $PATH From 4224c500522544f624203941bb2d3dabafdad137 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 13:32:10 +0100 Subject: [PATCH 31/99] Trigger [run ci] --- .../tests_cmake_t8code_w_other_compilers.yml | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 5e9953adab..1c4562f0a9 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -91,17 +91,19 @@ jobs: echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - name: Show MPI version run: | - echo $PATH - export CC=clang - export CXX=clang++ + # echo $PATH + # export CC=clang + # export CXX=clang++ mpicc --version + - name: Show folder content + run: ls # This seems to be necessary because of the docker container -# - name: disable ownership checks -# run: git config --global --add safe.directory '*' -# - name: init submodules -# run: git submodule init -# - name: update submodules -# run: git submodule update + - name: disable ownership checks + run: git config --global --add safe.directory '*' + - name: init submodules + run: git submodule init + - name: update submodules + run: git submodule update # - name: Get input vars # run: export MAKEFLAGS="${{ inputs.MAKEFLAGS }}" # && export MPI="${{ inputs.MPI }}" From fa1f9bb08222fe68fc574697821e82632bf60df3 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 13:38:58 +0100 Subject: [PATCH 32/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 1c4562f0a9..383d6af7e3 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -67,7 +67,8 @@ jobs: run: | apt-get install -y wget tar lld make \ libc6-dev libc++-dev libc++abi-dev \ - pkg-config + pkg-config \ + git # zlib1g-dev \ # libssl-dev \ # bzip2-dev \ From 5da01e0f4ec6b4baa18e5e66367ae62a43d6c216 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 13:51:31 +0100 Subject: [PATCH 33/99] Trigger [run ci] --- .../workflows/tests_cmake_t8code_w_other_compilers.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 383d6af7e3..e7acc2d0f0 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -97,10 +97,12 @@ jobs: # export CXX=clang++ mpicc --version - name: Show folder content - run: ls + run: | + ls + ls .git # This seems to be necessary because of the docker container - - name: disable ownership checks - run: git config --global --add safe.directory '*' + # - name: disable ownership checks + # run: git config --global --add safe.directory '*' - name: init submodules run: git submodule init - name: update submodules From 8f428238c694b6feda4cef22749a2d8a3856a868 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 14:09:35 +0100 Subject: [PATCH 34/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index e7acc2d0f0..db074eb5d5 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -61,6 +61,8 @@ jobs: - uses: actions/checkout@v6 with: fetch-depth: 0 + - name: Git status + run: git status - name: Update packages run: apt-get update && apt-get upgrade -y - name: Install some basic packages From 14f0231ceb4a9f4d70ed98d4affb302eed1a7430 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 14:16:30 +0100 Subject: [PATCH 35/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index db074eb5d5..460508a01f 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -53,7 +53,7 @@ jobs: t8code_cmake_tests: timeout-minutes: 60 runs-on: ubuntu-latest - container: ubuntu:22.04 + container: dlramr/t8code-ubuntu:t8-dependencies steps: # # Setup From 9dfbe5ff016c29cc30be394926a0104ea241a371 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 14:33:17 +0100 Subject: [PATCH 36/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 460508a01f..d3ac892d38 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -61,8 +61,6 @@ jobs: - uses: actions/checkout@v6 with: fetch-depth: 0 - - name: Git status - run: git status - name: Update packages run: apt-get update && apt-get upgrade -y - name: Install some basic packages From 4a6fea19c441e151055b0a35c7ec7bead03d083a Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 14:47:05 +0100 Subject: [PATCH 37/99] Trigger [run ci] --- .../tests_cmake_t8code_w_other_compilers.yml | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index d3ac892d38..6e0618c1a7 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -91,29 +91,25 @@ jobs: ls $OMPI_INSTALL_PATH/bin echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - name: Show MPI version - run: | - # echo $PATH - # export CC=clang - # export CXX=clang++ - mpicc --version + run: mpicc --version - name: Show folder content run: | ls ls .git # This seems to be necessary because of the docker container - # - name: disable ownership checks - # run: git config --global --add safe.directory '*' + - name: disable ownership checks + run: git config --global --add safe.directory '*' - name: init submodules run: git submodule init - name: update submodules run: git submodule update -# - name: Get input vars -# run: export MAKEFLAGS="${{ inputs.MAKEFLAGS }}" -# && export MPI="${{ inputs.MPI }}" -# && export BUILD_TYPE="${{ inputs.BUILD_TYPE }}" -# && echo MAKEFLAGS="$MAKEFLAGS" >> $GITHUB_ENV -# && echo MPI="$MPI" >> $GITHUB_ENV -# && echo BUILD_TYPE="$BUILD_TYPE" >> $GITHUB_ENV + - name: Get input vars + run: export MAKEFLAGS="${{ inputs.MAKEFLAGS }}" + && export MPI="${{ inputs.MPI }}" + && export BUILD_TYPE="${{ inputs.BUILD_TYPE }}" + && echo MAKEFLAGS="$MAKEFLAGS" >> $GITHUB_ENV + && echo MPI="$MPI" >> $GITHUB_ENV + && echo BUILD_TYPE="$BUILD_TYPE" >> $GITHUB_ENV # # # # T8CODE # # From 04976c2501d50b0f5c9cfec430f805d132527384 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 15:07:28 +0100 Subject: [PATCH 38/99] Trigger [run ci] --- .../tests_cmake_t8code_w_other_compilers.yml | 62 +++++++++++-------- 1 file changed, 36 insertions(+), 26 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 6e0618c1a7..04d087d576 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -87,11 +87,21 @@ jobs: CC=clang CXX=clang++ ./configure --prefix=$OMPI_INSTALL_PATH make -j$(nproc) make install - echo "OMPI_INSTALL_PATH= ${OMPI_INSTALL_PATH}" + echo OMPI_INSTALL_PATH="${OMPI_INSTALL_PATH}" >> $GITHUB_ENV ls $OMPI_INSTALL_PATH/bin echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - name: Show MPI version run: mpicc --version + - name: Export CLANG compiler flags + run: | + export CC=clang + export CXX=clang++ + export MPICC={OMPI_INSTALL_PATH}/bin/mpiccc + export MPICXX={OMPI_INSTALL_PATH}/bin/mpicxx + echo CC="$CC" >> $GITHUB_ENV + echo CXX="$CXX" >> $GITHUB_ENV + echo MPICC="$MPICC" >> $GITHUB_ENV + echo MPICXX="$MPICXX" >> $GITHUB_ENV - name: Show folder content run: | ls @@ -110,31 +120,31 @@ jobs: && echo MAKEFLAGS="$MAKEFLAGS" >> $GITHUB_ENV && echo MPI="$MPI" >> $GITHUB_ENV && echo BUILD_TYPE="$BUILD_TYPE" >> $GITHUB_ENV -# # -# # T8CODE -# # -# # build config vars -# - name: Set test level -# run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" -# && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV -# - name: build config variables -# run: export CONFIG_OPTIONS="${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=ON -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" -# && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV -# # cmake and test -# - name: Printing MPI compiler info -# run: mpicc --version && mpirun --version -# - name: Printing GCC compiler info -# run: gcc --version && g++ --version -# - name: echo cmake line -# run: echo cmake ../ $CONFIG_OPTIONS -# - name: cmake -# run: mkdir build && cd build && cmake ../ $CONFIG_OPTIONS -# - name: OnFailUploadLog -# if: failure() -# uses: actions/upload-artifact@v5 -# with: -# name: cmake_w_submodules_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log -# path: build/CMakeFiles/CMakeOutput.log +# +# T8CODE +# + # build config vars + - name: Set test level + run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" + && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV + - name: build config variables + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc -DCMAKE_CXX_COMPILER={OMPI_INSTALL_PATH}/bin/mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=ON -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" + && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV + # cmake and test + - name: Printing MPI compiler info + run: mpicc --version && mpirun --version + - name: Printing GCC compiler info + run: gcc --version && g++ --version + - name: echo cmake line + run: echo cmake ../ $CONFIG_OPTIONS + - name: cmake + run: mkdir build && cd build && cmake ../ $CONFIG_OPTIONS + # - name: OnFailUploadLog + # if: failure() + # uses: actions/upload-artifact@v5 + # with: + # name: cmake_w_submodules_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log + # path: build/CMakeFiles/CMakeOutput.log # - name: ninja # run: cd build && ninja $MAKEFLAGS # - name: ninja install From 80afe9fef3f6fe56a2c890006a0b82b71be63045 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 15:58:55 +0100 Subject: [PATCH 39/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 04d087d576..d3c10373a4 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -128,7 +128,7 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc -DCMAKE_CXX_COMPILER={OMPI_INSTALL_PATH}/bin/mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=ON -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=ON -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV # cmake and test - name: Printing MPI compiler info From d6475a19f5aaec5301b2f4c40311ae854d583c4c Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 16:15:06 +0100 Subject: [PATCH 40/99] Trigger [run ci] --- .../tests_cmake_t8code_w_other_compilers.yml | 50 +++++++++---------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index d3c10373a4..82f4b2a1f1 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -133,34 +133,32 @@ jobs: # cmake and test - name: Printing MPI compiler info run: mpicc --version && mpirun --version - - name: Printing GCC compiler info - run: gcc --version && g++ --version - name: echo cmake line run: echo cmake ../ $CONFIG_OPTIONS - name: cmake run: mkdir build && cd build && cmake ../ $CONFIG_OPTIONS - # - name: OnFailUploadLog - # if: failure() - # uses: actions/upload-artifact@v5 - # with: - # name: cmake_w_submodules_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log - # path: build/CMakeFiles/CMakeOutput.log -# - name: ninja -# run: cd build && ninja $MAKEFLAGS -# - name: ninja install -# run: cd build && ninja install $MAKEFLAGS -# - name: serial tests (if MPI is enabled) -# run: cd build && ctest $MAKEFLAGS -R _serial -# if: ${{ inputs.MPI == 'ON' }} -# - name: parallel tests (if MPI is enabled) -# run: cd build && ctest -R _parallel + - name: OnFailUploadLog + if: failure() + uses: actions/upload-artifact@v5 + with: + name: cmake_w_other_compilers_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log + path: build/CMakeFiles/CMakeOutput.log + - name: ninja + run: cd build && ninja $MAKEFLAGS + - name: ninja install + run: cd build && ninja install $MAKEFLAGS + - name: serial tests (if MPI is enabled) + run: cd build && ctest $MAKEFLAGS -R _serial # if: ${{ inputs.MPI == 'ON' }} -# - name: tests (if MPI is disabled) -# run: cd build && ctest $MAKEFLAGS -# if: ${{ inputs.MPI == 'OFF' }} -# - name: OnFailUploadLog -# if: failure() -# uses: actions/upload-artifact@v5 -# with: -# name: test-suite_w_submodules_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log -# path: build/Testing/Temporary/LastTest.log + - name: parallel tests (if MPI is enabled) + run: cd build && ctest -R _parallel + if: ${{ inputs.MPI == 'ON' }} + - name: tests (if MPI is disabled) + run: cd build && ctest $MAKEFLAGS + if: ${{ inputs.MPI == 'OFF' }} + - name: OnFailUploadLog + if: failure() + uses: actions/upload-artifact@v5 + with: + name: test-suite_w_other_compilers_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log + path: build/Testing/Temporary/LastTest.log From 99a2ee6fec734fd4e7d71c126cbb5996ca6912c4 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 18 Dec 2025 16:46:38 +0100 Subject: [PATCH 41/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 82f4b2a1f1..bddc343a8e 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -128,7 +128,7 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=ON -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV # cmake and test - name: Printing MPI compiler info From 2b0520bb31141ce6e30ae3e0c76e002ba04a4241 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 19 Dec 2025 10:48:55 +0100 Subject: [PATCH 42/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index bddc343a8e..c2b07d21e1 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -152,6 +152,9 @@ jobs: # if: ${{ inputs.MPI == 'ON' }} - name: parallel tests (if MPI is enabled) run: cd build && ctest -R _parallel + env: + OMPI_ALLOW_RUN_AS_ROOT: 1 + OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 if: ${{ inputs.MPI == 'ON' }} - name: tests (if MPI is disabled) run: cd build && ctest $MAKEFLAGS From 50b91b9dae37ce4ec1fbe506e1b02b56b7acd782 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 19 Dec 2025 11:08:38 +0100 Subject: [PATCH 43/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index c2b07d21e1..55abc4170d 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -155,6 +155,7 @@ jobs: env: OMPI_ALLOW_RUN_AS_ROOT: 1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 + OMPI_MCA_rmaps_base_oversubscribe: 1 if: ${{ inputs.MPI == 'ON' }} - name: tests (if MPI is disabled) run: cd build && ctest $MAKEFLAGS From cef471979e4e57cabecdfa03f99a0baa5fda2ac5 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 19 Dec 2025 11:41:58 +0100 Subject: [PATCH 44/99] Trigger [run ci] --- .github/workflows/tests_cmake_testsuite.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_testsuite.yml b/.github/workflows/tests_cmake_testsuite.yml index 3568f00d69..e2707e796b 100644 --- a/.github/workflows/tests_cmake_testsuite.yml +++ b/.github/workflows/tests_cmake_testsuite.yml @@ -229,7 +229,7 @@ jobs: MAKEFLAGS: -j4 MPI: ON BUILD_TYPE: Debug - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_BASIC' || 'T8_TEST_LEVEL_BASIC' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. COMPILER: CLANG # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. From 8e1741596d4dd21a33a1ffa1a281891a4b87fef7 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 14:40:11 +0100 Subject: [PATCH 45/99] Try fixing stalling MPI issue --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 ++ src/t8_netcdf.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 55abc4170d..b82c490bf1 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -156,6 +156,8 @@ jobs: OMPI_ALLOW_RUN_AS_ROOT: 1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 OMPI_MCA_rmaps_base_oversubscribe: 1 + OMPI_MCA_btl: self,tcp + OMPI_MCA_pml: ob1 if: ${{ inputs.MPI == 'ON' }} - name: tests (if MPI is disabled) run: cd build && ctest $MAKEFLAGS diff --git a/src/t8_netcdf.c b/src/t8_netcdf.c index faf8a34423..2b5c74fa23 100644 --- a/src/t8_netcdf.c +++ b/src/t8_netcdf.c @@ -46,7 +46,7 @@ t8_netcdf_create_integer_var (const char *var_name, const char *var_long_name, c sc_array_t *var_data) { t8_netcdf_variable_type_t var_type; - /* Check whether 32-bit (4-byte) integer or 64-bit integer data sholud be written */ + /* Check whether 32-bit (4-byte) integer or 64-bit integer data should be written */ var_type = (var_data->elem_size > 4) ? T8_NETCDF_INT64 : T8_NETCDF_INT; return t8_netcdf_create_var (var_type, var_name, var_long_name, var_unit, var_data); } From b9435931b6e4aede373e40f3bfba73de9df28c7d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 14:49:53 +0100 Subject: [PATCH 46/99] Trigger [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index b82c490bf1..8d697ac69b 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -122,7 +122,7 @@ jobs: && echo BUILD_TYPE="$BUILD_TYPE" >> $GITHUB_ENV # # T8CODE -# +# ------- # build config vars - name: Set test level run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" From 782f17026c284d0d908a97c2ef9840f83159eea0 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 15:31:44 +0100 Subject: [PATCH 47/99] Use new docker image t8-clang-dependencies [run ci] --- .../tests_cmake_t8code_w_other_compilers.yml | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 8d697ac69b..3e8811966f 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -53,7 +53,7 @@ jobs: t8code_cmake_tests: timeout-minutes: 60 runs-on: ubuntu-latest - container: dlramr/t8code-ubuntu:t8-dependencies + container: dlramr/t8code-ubuntu:t8-clang-dependencies steps: # # Setup @@ -63,33 +63,33 @@ jobs: fetch-depth: 0 - name: Update packages run: apt-get update && apt-get upgrade -y - - name: Install some basic packages - run: | - apt-get install -y wget tar lld make \ - libc6-dev libc++-dev libc++abi-dev \ - pkg-config \ - git - # zlib1g-dev \ - # libssl-dev \ - # bzip2-dev \ - # sqlite3-dev \ - - name: Install CLANG - run: apt-get install clang -y + # - name: Install some basic packages + # run: | + # apt-get install -y wget tar lld make \ + # libc6-dev libc++-dev libc++abi-dev \ + # pkg-config \ + # git + # # zlib1g-dev \ + # # libssl-dev \ + # # bzip2-dev \ + # # sqlite3-dev \ + # - name: Install CLANG + # run: apt-get install clang -y - name: Check clang version run: clang --version - - name: Install openmpi with CLANG - run: | - mkdir install_ompi_clang - export OMPI_INSTALL_PATH=$(pwd)/install_ompi_clang - wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz - tar xf openmpi-4.1.6.tar.gz - cd openmpi-4.1.6 - CC=clang CXX=clang++ ./configure --prefix=$OMPI_INSTALL_PATH - make -j$(nproc) - make install - echo OMPI_INSTALL_PATH="${OMPI_INSTALL_PATH}" >> $GITHUB_ENV - ls $OMPI_INSTALL_PATH/bin - echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH + # - name: Install openmpi with CLANG + # run: | + # mkdir install_ompi_clang + # export OMPI_INSTALL_PATH=$(pwd)/install_ompi_clang + # wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz + # tar xf openmpi-4.1.6.tar.gz + # cd openmpi-4.1.6 + # CC=clang CXX=clang++ ./configure --prefix=$OMPI_INSTALL_PATH + # make -j$(nproc) + # make install + # echo OMPI_INSTALL_PATH="${OMPI_INSTALL_PATH}" >> $GITHUB_ENV + # ls $OMPI_INSTALL_PATH/bin + # echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - name: Show MPI version run: mpicc --version - name: Export CLANG compiler flags From 202a2c327848fd60ba3d84e2c8216628a3dba214 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 15:37:23 +0100 Subject: [PATCH 48/99] Add self-compiled openmpi version to PATH [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 3e8811966f..17faa7d5b8 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -90,8 +90,6 @@ jobs: # echo OMPI_INSTALL_PATH="${OMPI_INSTALL_PATH}" >> $GITHUB_ENV # ls $OMPI_INSTALL_PATH/bin # echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - - name: Show MPI version - run: mpicc --version - name: Export CLANG compiler flags run: | export CC=clang @@ -102,6 +100,9 @@ jobs: echo CXX="$CXX" >> $GITHUB_ENV echo MPICC="$MPICC" >> $GITHUB_ENV echo MPICXX="$MPICXX" >> $GITHUB_ENV + echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH + - name: Show MPI version + run: mpicc --version - name: Show folder content run: | ls From 2cdcf1f69bbbcd69a84e63e56305b5cc2f28f210 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 16:00:22 +0100 Subject: [PATCH 49/99] Install cmake [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index 17faa7d5b8..ff79dc0a5f 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -63,6 +63,9 @@ jobs: fetch-depth: 0 - name: Update packages run: apt-get update && apt-get upgrade -y + - name: Install missing packages (to be added to image) + run: | + apt-get install -y cmake # - name: Install some basic packages # run: | # apt-get install -y wget tar lld make \ From 2fec6f785d59d775a939d0fee7b633cc9ec57145 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 16:02:49 +0100 Subject: [PATCH 50/99] Install ninja-build [run ci] --- .github/workflows/tests_cmake_t8code_w_other_compilers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml index ff79dc0a5f..fdb658b251 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_other_compilers.yml @@ -65,7 +65,7 @@ jobs: run: apt-get update && apt-get upgrade -y - name: Install missing packages (to be added to image) run: | - apt-get install -y cmake + apt-get install -y cmake ninja-build # - name: Install some basic packages # run: | # apt-get install -y wget tar lld make \ From 6ceba138c5868918e059d57cdffca112164c216c Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Mon, 5 Jan 2026 16:19:34 +0100 Subject: [PATCH 51/99] Some cleanup [run ci] --- ...> tests_cmake_t8code_w_clang_compiler.yml} | 44 ++----------------- .github/workflows/tests_cmake_testsuite.yml | 25 +++++------ 2 files changed, 16 insertions(+), 53 deletions(-) rename .github/workflows/{tests_cmake_t8code_w_other_compilers.yml => tests_cmake_t8code_w_clang_compiler.yml} (76%) diff --git a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml b/.github/workflows/tests_cmake_t8code_w_clang_compiler.yml similarity index 76% rename from .github/workflows/tests_cmake_t8code_w_other_compilers.yml rename to .github/workflows/tests_cmake_t8code_w_clang_compiler.yml index fdb658b251..342d2df9cf 100644 --- a/.github/workflows/tests_cmake_t8code_w_other_compilers.yml +++ b/.github/workflows/tests_cmake_t8code_w_clang_compiler.yml @@ -1,11 +1,11 @@ -name: CMake tests t8code with other compilers +name: CMake tests t8code with Clang compiler # This file is part of t8code. # t8code is a C library to manage a collection (a forest) of multiple # connected adaptive space-trees of general element types in parallel. # -# Copyright (C) 2024 the developers +# Copyright (C) 2025 the developers # # t8code is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,10 +44,6 @@ on: type: string description: 'Test level used for configuring (T8_TEST_LEVEL_FULL, T8_TEST_LEVEL_MEDIUM, or T8_TEST_LEVEL_BASIC)' default: 'T8_TEST_LEVEL_FULL' - COMPILER: - required: true - type: string - description: 'Compiler (CLANG)' jobs: t8code_cmake_tests: @@ -63,36 +59,8 @@ jobs: fetch-depth: 0 - name: Update packages run: apt-get update && apt-get upgrade -y - - name: Install missing packages (to be added to image) - run: | - apt-get install -y cmake ninja-build - # - name: Install some basic packages - # run: | - # apt-get install -y wget tar lld make \ - # libc6-dev libc++-dev libc++abi-dev \ - # pkg-config \ - # git - # # zlib1g-dev \ - # # libssl-dev \ - # # bzip2-dev \ - # # sqlite3-dev \ - # - name: Install CLANG - # run: apt-get install clang -y - name: Check clang version run: clang --version - # - name: Install openmpi with CLANG - # run: | - # mkdir install_ompi_clang - # export OMPI_INSTALL_PATH=$(pwd)/install_ompi_clang - # wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz - # tar xf openmpi-4.1.6.tar.gz - # cd openmpi-4.1.6 - # CC=clang CXX=clang++ ./configure --prefix=$OMPI_INSTALL_PATH - # make -j$(nproc) - # make install - # echo OMPI_INSTALL_PATH="${OMPI_INSTALL_PATH}" >> $GITHUB_ENV - # ls $OMPI_INSTALL_PATH/bin - # echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - name: Export CLANG compiler flags run: | export CC=clang @@ -106,10 +74,6 @@ jobs: echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - name: Show MPI version run: mpicc --version - - name: Show folder content - run: | - ls - ls .git # This seems to be necessary because of the docker container - name: disable ownership checks run: git config --global --add safe.directory '*' @@ -145,7 +109,7 @@ jobs: if: failure() uses: actions/upload-artifact@v5 with: - name: cmake_w_other_compilers_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log + name: cmake_w_clang_compiler_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log path: build/CMakeFiles/CMakeOutput.log - name: ninja run: cd build && ninja $MAKEFLAGS @@ -170,5 +134,5 @@ jobs: if: failure() uses: actions/upload-artifact@v5 with: - name: test-suite_w_other_compilers_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log + name: test-suite_w_clang_compiler_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log path: build/Testing/Temporary/LastTest.log diff --git a/.github/workflows/tests_cmake_testsuite.yml b/.github/workflows/tests_cmake_testsuite.yml index e2707e796b..5f82d1e7e7 100644 --- a/.github/workflows/tests_cmake_testsuite.yml +++ b/.github/workflows/tests_cmake_testsuite.yml @@ -213,31 +213,30 @@ jobs: # CODE_COV: ${{ secrets.CODE_COV }} # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. - t8code_w_other_compilers_tests: + t8code_w_clang_compiler_tests: needs: fine_grained_trigger secrets: inherit if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} - uses: ./.github/workflows/tests_cmake_t8code_w_other_compilers.yml + uses: ./.github/workflows/tests_cmake_t8code_w_clang_compiler.yml strategy: fail-fast: false - # matrix: - # MPI: [OFF, ON] - # BUILD_TYPE: [Debug, Release] - # include: - # - MAKEFLAGS: -j4 + matrix: + MPI: [ON] + BUILD_TYPE: [Debug, Release] + include: + - MAKEFLAGS: -j4 with: - MAKEFLAGS: -j4 - MPI: ON - BUILD_TYPE: Debug - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_BASIC' || 'T8_TEST_LEVEL_BASIC' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - COMPILER: CLANG + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + MPI: ${{ matrix.MPI }} + BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. # t8code_w_shipped_submodules_tests: # needs: fine_grained_trigger # secrets: inherit # if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} - # uses: ./.github/workflows/tests_cmake_t8code_w_other_compilers.yml + # uses: ./.github/workflows/tests_cmake_t8code_w_clang_compiler.yml # with: # MAKEFLAGS: -j4 # MPI: ON From 2d27ec983404cb525292d2eff13a7a874b74fee9 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 09:12:41 +0100 Subject: [PATCH 52/99] Added some documentation [run ci] --- .../tests_cmake_t8code_w_clang_compiler.yml | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests_cmake_t8code_w_clang_compiler.yml b/.github/workflows/tests_cmake_t8code_w_clang_compiler.yml index 342d2df9cf..d57ed26c2b 100644 --- a/.github/workflows/tests_cmake_t8code_w_clang_compiler.yml +++ b/.github/workflows/tests_cmake_t8code_w_clang_compiler.yml @@ -21,11 +21,19 @@ name: CMake tests t8code with Clang compiler # along with t8code; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# This workflow checks whether building and testing works with the Clang compiler +# and openmpi. It was added because all of t8code's remaining CI workflows rely +# on gcc and mpich, hence missing Clang- or openmpi-specific issues. +# To reduce runtime, (for now) only Debug mode with MPI is tested; also, no external +# libraries like VTK, OpenCASCADE etc. are covered. + env: DEBUG_CONFIG: "-O1" on: workflow_call: + # Note: To simplify adding more configurations of this workflow later, the MPI mode and the BUILD_TYPE + # are passed as input. inputs: MAKEFLAGS: required: true @@ -47,13 +55,16 @@ on: jobs: t8code_cmake_tests: + # + # Container setup: To avoid unwanted side effects of gcc or mpich, an own Clang version of the + # t8-dependencies Docker image is used. timeout-minutes: 60 runs-on: ubuntu-latest container: dlramr/t8code-ubuntu:t8-clang-dependencies steps: -# -# Setup -# + # + # Part 1: Preparation + # ------------------- - uses: actions/checkout@v6 with: fetch-depth: 0 @@ -88,39 +99,45 @@ jobs: && echo MAKEFLAGS="$MAKEFLAGS" >> $GITHUB_ENV && echo MPI="$MPI" >> $GITHUB_ENV && echo BUILD_TYPE="$BUILD_TYPE" >> $GITHUB_ENV -# -# T8CODE -# ------- - # build config vars + # + # Part 2: Build t8code + # -------------------- + # Define build config - name: Set test level run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV - # cmake and test - - name: Printing MPI compiler info - run: mpicc --version && mpirun --version + # Run cmake - name: echo cmake line run: echo cmake ../ $CONFIG_OPTIONS - name: cmake run: mkdir build && cd build && cmake ../ $CONFIG_OPTIONS + # On failure, upload logs - name: OnFailUploadLog if: failure() uses: actions/upload-artifact@v5 with: name: cmake_w_clang_compiler_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log path: build/CMakeFiles/CMakeOutput.log + # Build with ninja - name: ninja run: cd build && ninja $MAKEFLAGS - name: ninja install run: cd build && ninja install $MAKEFLAGS + # + # Part 3: Run t8code tests + # ------------------------ + # Run serial and parallel tests. - name: serial tests (if MPI is enabled) run: cd build && ctest $MAKEFLAGS -R _serial -# if: ${{ inputs.MPI == 'ON' }} + if: ${{ inputs.MPI == 'ON' }} - name: parallel tests (if MPI is enabled) run: cd build && ctest -R _parallel env: + # Note: These openmpi options are required to ensure stable runs in github workflows and avoid stalling. + # In particular, they activate oversubscription and define the communication channels, here tcp (and self). OMPI_ALLOW_RUN_AS_ROOT: 1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 OMPI_MCA_rmaps_base_oversubscribe: 1 @@ -130,6 +147,7 @@ jobs: - name: tests (if MPI is disabled) run: cd build && ctest $MAKEFLAGS if: ${{ inputs.MPI == 'OFF' }} + # On failure, upload logs - name: OnFailUploadLog if: failure() uses: actions/upload-artifact@v5 From 40f72cbc8c86450fd43e2659a702ebf3cbf99074 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 09:53:20 +0100 Subject: [PATCH 53/99] Adjusted to new workflow names --- ...r.yml => test_t8code_w_clang_and_ompi.yml} | 17 +- .github/workflows/testsuite.yml | 244 ++++++++++-------- 2 files changed, 142 insertions(+), 119 deletions(-) rename .github/workflows/{tests_cmake_t8code_w_clang_compiler.yml => test_t8code_w_clang_and_ompi.yml} (86%) diff --git a/.github/workflows/tests_cmake_t8code_w_clang_compiler.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml similarity index 86% rename from .github/workflows/tests_cmake_t8code_w_clang_compiler.yml rename to .github/workflows/test_t8code_w_clang_and_ompi.yml index d57ed26c2b..ff70b5a5c7 100644 --- a/.github/workflows/tests_cmake_t8code_w_clang_compiler.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -1,4 +1,4 @@ -name: CMake tests t8code with Clang compiler +name: CMake tests t8code with Clang compiler and OpenMPI # This file is part of t8code. @@ -57,7 +57,8 @@ jobs: t8code_cmake_tests: # # Container setup: To avoid unwanted side effects of gcc or mpich, an own Clang version of the - # t8-dependencies Docker image is used. + # t8-dependencies Docker image is used. Aside from some basic packages, it contains a manually built + # Clang version of OpenMPI. timeout-minutes: 60 runs-on: ubuntu-latest container: dlramr/t8code-ubuntu:t8-clang-dependencies @@ -70,13 +71,13 @@ jobs: fetch-depth: 0 - name: Update packages run: apt-get update && apt-get upgrade -y - - name: Check clang version + - name: Check Clang version run: clang --version - - name: Export CLANG compiler flags + - name: Export Clang compiler flags (not all strictly required, but safety first) run: | export CC=clang export CXX=clang++ - export MPICC={OMPI_INSTALL_PATH}/bin/mpiccc + export MPICC={OMPI_INSTALL_PATH}/bin/mpicc export MPICXX={OMPI_INSTALL_PATH}/bin/mpicxx echo CC="$CC" >> $GITHUB_ENV echo CXX="$CXX" >> $GITHUB_ENV @@ -107,7 +108,7 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${MPICC} -DCMAKE_CXX_COMPILER=${MPICXX} ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV # Run cmake - name: echo cmake line @@ -119,7 +120,7 @@ jobs: if: failure() uses: actions/upload-artifact@v5 with: - name: cmake_w_clang_compiler_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log + name: cmake_w_clang_and_ompi_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log path: build/CMakeFiles/CMakeOutput.log # Build with ninja - name: ninja @@ -152,5 +153,5 @@ jobs: if: failure() uses: actions/upload-artifact@v5 with: - name: test-suite_w_clang_compiler_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log + name: test-suite_w_clang_and_ompi_${{ inputs.BUILD_TYPE }}_MPI_${{ inputs.MPI }}.log path: build/Testing/Temporary/LastTest.log diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml index 4c10076a54..55a9552d9a 100644 --- a/.github/workflows/testsuite.yml +++ b/.github/workflows/testsuite.yml @@ -105,81 +105,138 @@ jobs: exit 0 fi - # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. - preparation: - needs: [fine_grained_trigger] - secrets: inherit - if: needs.fine_grained_trigger.outputs.run_ci == 'true' - uses: ./.github/workflows/test_preparation.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run - CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once - MPI: ${{ matrix.MPI }} + # # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. + # preparation: + # needs: [fine_grained_trigger] + # secrets: inherit + # if: needs.fine_grained_trigger.outputs.run_ci == 'true' + # uses: ./.github/workflows/test_preparation.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run + # CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once + # MPI: ${{ matrix.MPI }} - # Run parallel tests for sc and p4est with and without MPI - sc_p4est_tests: - needs: preparation - uses: ./.github/workflows/test_sc_p4est.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} + # # Run parallel tests for sc and p4est with and without MPI + # sc_p4est_tests: + # needs: preparation + # uses: ./.github/workflows/test_sc_p4est.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} - # Run t8code tests with and without MPI and in serial and debug mode - t8code_tests: - needs: preparation - uses: ./.github/workflows/test_t8code.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - BUILD_TYPE: [Debug, Release] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} - BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # # Run t8code tests with and without MPI and in serial and debug mode + # t8code_tests: + # needs: preparation + # uses: ./.github/workflows/test_t8code.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} + # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # Run t8code linkage tests with and without MPI and in serial and debug mode - t8code_linkage_tests: - needs: preparation - uses: ./.github/workflows/test_t8code_linkage.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - BUILD_TYPE: [Debug, Release] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} - BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # # Run t8code linkage tests with and without MPI and in serial and debug mode + # t8code_linkage_tests: + # needs: preparation + # uses: ./.github/workflows/test_t8code_linkage.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} + # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + + # # Run t8code linkage tests with and without MPI and in serial and debug mode + # t8code_api_tests: + # needs: preparation + # uses: ./.github/workflows/test_t8code_api.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [ON] # For now the fortran API only supports building with MPI + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} + # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + + # # Run Valgrind check for every t8code test binary. + # t8code_valgrind_tests: + # if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. + # needs: preparation + # uses: ./.github/workflows/test_valgrind.yml + # with: + # MAKEFLAGS: -j4 + # MPI: ON + # BUILD_TYPE: Debug + # TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. + + # # Generate code coverage and deploy to Codecov. + # t8code_code_coverage: + # if: (github.event_name != 'merge_group') + # needs: preparation + # uses: ./.github/workflows/code_coverage.yml + # with: + # MAKEFLAGS: -j4 + # MPI: ON + # BUILD_TYPE: Debug + # TEST_LEVEL: T8_TEST_LEVEL_BASIC + # secrets: + # CODE_COV: ${{ secrets.CODE_COV }} + + # # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. + # t8code_w_shipped_submodules_tests: + # needs: fine_grained_trigger + # secrets: inherit + # if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} + # uses: ./.github/workflows/test_t8code_w_shipped_submodules.yml + # with: + # MAKEFLAGS: -j4 + # MPI: ON + # BUILD_TYPE: Debug + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # Run t8code linkage tests with and without MPI and in serial and debug mode - t8code_api_tests: - needs: preparation - uses: ./.github/workflows/test_t8code_api.yml + # Check t8code building and testing with the Clang compiler and openmpi. + # Note: This workflow is meant to detect Clang- or openmpi-specific issues missed by the remaining (gcc- and mpich-based) workflows. + # To reduce its runtime, it currently only used Debug mode with MPI on and does not link to external libraries like VTK or OpenCASCADE. + t8code_w_clang_and_ompi_tests: + needs: fine_grained_trigger + secrets: inherit + if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} + uses: ./.github/workflows/test_t8code_w_clang_and_ompi.yml strategy: fail-fast: false matrix: - MPI: [ON] # For now the fortran API only supports building with MPI - BUILD_TYPE: [Debug, Release] + MPI: [ON] + BUILD_TYPE: [Debug] include: - MAKEFLAGS: -j4 with: @@ -188,47 +245,12 @@ jobs: BUILD_TYPE: ${{ matrix.BUILD_TYPE }} TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # Run Valgrind check for every t8code test binary. - t8code_valgrind_tests: - if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. - needs: preparation - uses: ./.github/workflows/test_valgrind.yml - with: - MAKEFLAGS: -j4 - MPI: ON - BUILD_TYPE: Debug - TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. - - # Generate code coverage and deploy to Codecov. - t8code_code_coverage: - if: (github.event_name != 'merge_group') - needs: preparation - uses: ./.github/workflows/code_coverage.yml - with: - MAKEFLAGS: -j4 - MPI: ON - BUILD_TYPE: Debug - TEST_LEVEL: T8_TEST_LEVEL_BASIC - secrets: - CODE_COV: ${{ secrets.CODE_COV }} - - # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. - t8code_w_shipped_submodules_tests: - needs: fine_grained_trigger - secrets: inherit - if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} - uses: ./.github/workflows/test_t8code_w_shipped_submodules.yml - with: - MAKEFLAGS: -j4 - MPI: ON - BUILD_TYPE: Debug - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # # Build doxygen documentation and check for errors / warnings. + # t8code_doxygen_check: + # uses: ./.github/workflows/check_doxygen.yml - t8code_doxygen_check: - uses: ./.github/workflows/check_doxygen.yml - - t8code_tarball: - if: github.event.pull_request.draft == false - uses: ./.github/workflows/test_tarball.yml - with: - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # t8code_tarball: + # if: github.event.pull_request.draft == false + # uses: ./.github/workflows/test_tarball.yml + # with: + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. From 2deb92059e3807a0144177c1af7eb554b6750345 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 09:56:02 +0100 Subject: [PATCH 54/99] Trigger CI [run ci] --- .github/workflows/testsuite.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml index 55a9552d9a..41ecdd5eb1 100644 --- a/.github/workflows/testsuite.yml +++ b/.github/workflows/testsuite.yml @@ -248,7 +248,7 @@ jobs: # # Build doxygen documentation and check for errors / warnings. # t8code_doxygen_check: # uses: ./.github/workflows/check_doxygen.yml - + # # t8code_tarball: # if: github.event.pull_request.draft == false # uses: ./.github/workflows/test_tarball.yml From 7956f3860b0074c8528f5065d5414ecbc0cfe11e Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 10:23:39 +0100 Subject: [PATCH 55/99] Introduced some sanity checks [run ci] --- .../test_t8code_w_clang_and_ompi.yml | 41 +++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index ff70b5a5c7..80ad6bff76 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -73,19 +73,36 @@ jobs: run: apt-get update && apt-get upgrade -y - name: Check Clang version run: clang --version - - name: Export Clang compiler flags (not all strictly required, but safety first) + - name: Verify gcc is absent + run: ! command -v gcc + # - name: Export Clang compiler flags (not all strictly required, but safety first) + # run: | + # export CC=clang + # export CXX=clang++ + # export MPICC=${OMPI_INSTALL_PATH}/bin/mpicc + # export MPICXX=${OMPI_INSTALL_PATH}/bin/mpicxx + # echo CC="$CC" >> $GITHUB_ENV + # echo CXX="$CXX" >> $GITHUB_ENV + # echo MPICC="$MPICC" >> $GITHUB_ENV + # echo MPICXX="$MPICXX" >> $GITHUB_ENV + # echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH + - name: Make sure MPI was built with CLANG + # Note: If "clang" is not found, the workflow is exited (due to fail-early mode) run: | - export CC=clang - export CXX=clang++ - export MPICC={OMPI_INSTALL_PATH}/bin/mpicc - export MPICXX={OMPI_INSTALL_PATH}/bin/mpicxx - echo CC="$CC" >> $GITHUB_ENV - echo CXX="$CXX" >> $GITHUB_ENV - echo MPICC="$MPICC" >> $GITHUB_ENV - echo MPICXX="$MPICXX" >> $GITHUB_ENV - echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - - name: Show MPI version - run: mpicc --version + mpicc --version > mpi_version_output + cat mpi_version_output + grep -i "clang" mpi_version_output + rm mpi_version_output + - name: Assert correct MPI paths + run: | + mpicc --showme:compile | grep -q "${OMPI_INSTALL_PATH}" + mpicc --showme:link | grep -q "${OMPI_INSTALL_PATH}" + # - name: Make sure the right MPI path is used + # run: | + # which mpicc > which_mpi_output + # cat which_mpi_output + # grep -i "${OMPI_INSTALL_PATH}" which_mpi_output + # rm which_mpi_output # This seems to be necessary because of the docker container - name: disable ownership checks run: git config --global --add safe.directory '*' From 7b5d55c10656c4ef3120502e4db45e88ab614369 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 10:27:18 +0100 Subject: [PATCH 56/99] Fix mpi paths in cmake command [run ci] --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 80ad6bff76..869f7a9507 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -125,7 +125,7 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${MPICC} -DCMAKE_CXX_COMPILER=${MPICXX} ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV # Run cmake - name: echo cmake line From c25cac80d5df18557eb9f71882a2a3c3c12eea7c Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 10:29:37 +0100 Subject: [PATCH 57/99] Add openmpi to path [run ci] --- .../test_t8code_w_clang_and_ompi.yml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 869f7a9507..c7630db294 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -75,17 +75,17 @@ jobs: run: clang --version - name: Verify gcc is absent run: ! command -v gcc - # - name: Export Clang compiler flags (not all strictly required, but safety first) - # run: | - # export CC=clang - # export CXX=clang++ - # export MPICC=${OMPI_INSTALL_PATH}/bin/mpicc - # export MPICXX=${OMPI_INSTALL_PATH}/bin/mpicxx - # echo CC="$CC" >> $GITHUB_ENV - # echo CXX="$CXX" >> $GITHUB_ENV - # echo MPICC="$MPICC" >> $GITHUB_ENV - # echo MPICXX="$MPICXX" >> $GITHUB_ENV - # echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH + - name: Export Clang compiler flags (not all strictly required, but safety first) + run: | + echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH + # export CC=clang + # export CXX=clang++ + # export MPICC=${OMPI_INSTALL_PATH}/bin/mpicc + # export MPICXX=${OMPI_INSTALL_PATH}/bin/mpicxx + # echo CC="$CC" >> $GITHUB_ENV + # echo CXX="$CXX" >> $GITHUB_ENV + # echo MPICC="$MPICC" >> $GITHUB_ENV + # echo MPICXX="$MPICXX" >> $GITHUB_ENV - name: Make sure MPI was built with CLANG # Note: If "clang" is not found, the workflow is exited (due to fail-early mode) run: | From 5d62e2c394b58bb5e5a62645e3a93cb9a4d8e6b6 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 10:33:25 +0100 Subject: [PATCH 58/99] Test more stuff [run ci] --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index c7630db294..e5ff8daca1 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -74,7 +74,8 @@ jobs: - name: Check Clang version run: clang --version - name: Verify gcc is absent - run: ! command -v gcc + run: | + which gcc - name: Export Clang compiler flags (not all strictly required, but safety first) run: | echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH @@ -95,8 +96,8 @@ jobs: rm mpi_version_output - name: Assert correct MPI paths run: | - mpicc --showme:compile | grep -q "${OMPI_INSTALL_PATH}" - mpicc --showme:link | grep -q "${OMPI_INSTALL_PATH}" + mpicc --showme:compile | grep "${OMPI_INSTALL_PATH}" + mpicc --showme:link | grep "${OMPI_INSTALL_PATH}" # - name: Make sure the right MPI path is used # run: | # which mpicc > which_mpi_output @@ -125,7 +126,7 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicc -DCMAKE_CXX_COMPILER=${OMPI_INSTALL_PATH}/bin/mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV # Run cmake - name: echo cmake line From 2c838fc0d5f5ee060eeccee221e41310eee04e4d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 11:02:18 +0100 Subject: [PATCH 59/99] Use updated docker image [run ci] --- .../test_t8code_w_clang_and_ompi.yml | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index e5ff8daca1..333fbb5673 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -75,18 +75,18 @@ jobs: run: clang --version - name: Verify gcc is absent run: | - which gcc - - name: Export Clang compiler flags (not all strictly required, but safety first) - run: | - echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - # export CC=clang - # export CXX=clang++ - # export MPICC=${OMPI_INSTALL_PATH}/bin/mpicc - # export MPICXX=${OMPI_INSTALL_PATH}/bin/mpicxx - # echo CC="$CC" >> $GITHUB_ENV - # echo CXX="$CXX" >> $GITHUB_ENV - # echo MPICC="$MPICC" >> $GITHUB_ENV - # echo MPICXX="$MPICXX" >> $GITHUB_ENV + ! command -v gcc + # - name: Export Clang compiler flags (not all strictly required, but safety first) + # run: | + # echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH + # # export CC=clang + # # export CXX=clang++ + # # export MPICC=${OMPI_INSTALL_PATH}/bin/mpicc + # # export MPICXX=${OMPI_INSTALL_PATH}/bin/mpicxx + # # echo CC="$CC" >> $GITHUB_ENV + # # echo CXX="$CXX" >> $GITHUB_ENV + # # echo MPICC="$MPICC" >> $GITHUB_ENV + # # echo MPICXX="$MPICXX" >> $GITHUB_ENV - name: Make sure MPI was built with CLANG # Note: If "clang" is not found, the workflow is exited (due to fail-early mode) run: | From 653c9c67f070c57f8f6891147781f914f6f671d6 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 11:14:31 +0100 Subject: [PATCH 60/99] Try exporting paths [run ci] --- .../test_t8code_w_clang_and_ompi.yml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 333fbb5673..da39615616 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -76,17 +76,17 @@ jobs: - name: Verify gcc is absent run: | ! command -v gcc - # - name: Export Clang compiler flags (not all strictly required, but safety first) - # run: | - # echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - # # export CC=clang - # # export CXX=clang++ - # # export MPICC=${OMPI_INSTALL_PATH}/bin/mpicc - # # export MPICXX=${OMPI_INSTALL_PATH}/bin/mpicxx - # # echo CC="$CC" >> $GITHUB_ENV - # # echo CXX="$CXX" >> $GITHUB_ENV - # # echo MPICC="$MPICC" >> $GITHUB_ENV - # # echo MPICXX="$MPICXX" >> $GITHUB_ENV + - name: Export Clang compiler flags (not all strictly required, but safety first) + run: | + export CC=clang + export CXX=clang++ + export MPICC=${OMPI_INSTALL_PATH}/bin/mpicc + export MPICXX=${OMPI_INSTALL_PATH}/bin/mpicxx + echo CC="$CC" >> $GITHUB_ENV + echo CXX="$CXX" >> $GITHUB_ENV + echo MPICC="$MPICC" >> $GITHUB_ENV + echo MPICXX="$MPICXX" >> $GITHUB_ENV + # echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - name: Make sure MPI was built with CLANG # Note: If "clang" is not found, the workflow is exited (due to fail-early mode) run: | From e188a83a2033b8177267d62f868a4f10290aec00 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 11:23:08 +0100 Subject: [PATCH 61/99] Install ggc between build and testing to make gtests work (hopefully) [run ci] --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index da39615616..d0eaee37ab 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -148,6 +148,19 @@ jobs: # # Part 3: Run t8code tests # ------------------------ + - name: Install gcc to make GoogleTests work. + run: apt-get update && apt-get install -y gcc g++ + - name: Make sure MPI was built with CLANG + # Note: If "clang" is not found, the workflow is exited (due to fail-early mode) + run: | + mpicc --version > mpi_version_output + cat mpi_version_output + grep -i "clang" mpi_version_output + rm mpi_version_output + - name: Assert correct MPI paths + run: | + mpicc --showme:compile | grep "${OMPI_INSTALL_PATH}" + mpicc --showme:link | grep "${OMPI_INSTALL_PATH}" # Run serial and parallel tests. - name: serial tests (if MPI is enabled) run: cd build && ctest $MAKEFLAGS -R _serial From f19b8af9c6d756da090d5dcecbec945e135019ff Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 11:40:35 +0100 Subject: [PATCH 62/99] Adjust to latest version of docker image [run ci] --- .../test_t8code_w_clang_and_ompi.yml | 41 ++----------------- 1 file changed, 4 insertions(+), 37 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index d0eaee37ab..2e8219ed55 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -64,8 +64,8 @@ jobs: container: dlramr/t8code-ubuntu:t8-clang-dependencies steps: # - # Part 1: Preparation - # ------------------- + # Part 1: Preparation and sanity checks + # ------------------------------------- - uses: actions/checkout@v6 with: fetch-depth: 0 @@ -73,37 +73,18 @@ jobs: run: apt-get update && apt-get upgrade -y - name: Check Clang version run: clang --version - - name: Verify gcc is absent - run: | - ! command -v gcc - - name: Export Clang compiler flags (not all strictly required, but safety first) - run: | - export CC=clang - export CXX=clang++ - export MPICC=${OMPI_INSTALL_PATH}/bin/mpicc - export MPICXX=${OMPI_INSTALL_PATH}/bin/mpicxx - echo CC="$CC" >> $GITHUB_ENV - echo CXX="$CXX" >> $GITHUB_ENV - echo MPICC="$MPICC" >> $GITHUB_ENV - echo MPICXX="$MPICXX" >> $GITHUB_ENV - # echo "${OMPI_INSTALL_PATH}/bin" >> $GITHUB_PATH - name: Make sure MPI was built with CLANG - # Note: If "clang" is not found, the workflow is exited (due to fail-early mode) + # Note: If "clang" is not found (or "gcc" is), the workflow is exited due to fail-early mode run: | mpicc --version > mpi_version_output cat mpi_version_output grep -i "clang" mpi_version_output + ! grep -i "gcc" mpi_version_output rm mpi_version_output - name: Assert correct MPI paths run: | mpicc --showme:compile | grep "${OMPI_INSTALL_PATH}" mpicc --showme:link | grep "${OMPI_INSTALL_PATH}" - # - name: Make sure the right MPI path is used - # run: | - # which mpicc > which_mpi_output - # cat which_mpi_output - # grep -i "${OMPI_INSTALL_PATH}" which_mpi_output - # rm which_mpi_output # This seems to be necessary because of the docker container - name: disable ownership checks run: git config --global --add safe.directory '*' @@ -148,20 +129,6 @@ jobs: # # Part 3: Run t8code tests # ------------------------ - - name: Install gcc to make GoogleTests work. - run: apt-get update && apt-get install -y gcc g++ - - name: Make sure MPI was built with CLANG - # Note: If "clang" is not found, the workflow is exited (due to fail-early mode) - run: | - mpicc --version > mpi_version_output - cat mpi_version_output - grep -i "clang" mpi_version_output - rm mpi_version_output - - name: Assert correct MPI paths - run: | - mpicc --showme:compile | grep "${OMPI_INSTALL_PATH}" - mpicc --showme:link | grep "${OMPI_INSTALL_PATH}" - # Run serial and parallel tests. - name: serial tests (if MPI is enabled) run: cd build && ctest $MAKEFLAGS -R _serial if: ${{ inputs.MPI == 'ON' }} From 1e4593c7fa5c6dcfce181b7ff1751f19dc20c6af Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Tue, 6 Jan 2026 12:10:09 +0100 Subject: [PATCH 63/99] Reactivate other CI workflows --- .../test_t8code_w_clang_and_ompi.yml | 10 +- .github/workflows/testsuite.yml | 240 +++++++++--------- 2 files changed, 127 insertions(+), 123 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 2e8219ed55..9909e2acfe 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -71,7 +71,7 @@ jobs: fetch-depth: 0 - name: Update packages run: apt-get update && apt-get upgrade -y - - name: Check Clang version + - name: Show Clang version run: clang --version - name: Make sure MPI was built with CLANG # Note: If "clang" is not found (or "gcc" is), the workflow is exited due to fail-early mode @@ -81,10 +81,14 @@ jobs: grep -i "clang" mpi_version_output ! grep -i "gcc" mpi_version_output rm mpi_version_output + echo "CHECKED: MPI was built with Clang." - name: Assert correct MPI paths run: | - mpicc --showme:compile | grep "${OMPI_INSTALL_PATH}" - mpicc --showme:link | grep "${OMPI_INSTALL_PATH}" + mpicc --showme:compile | grep "${OMPI_INSTALL_PATH}" + mpicc --showme:link | grep "${OMPI_INSTALL_PATH}" + mpicxx --showme:compile | grep "${OMPI_INSTALL_PATH}" + mpicxx --showme:link | grep "${OMPI_INSTALL_PATH}" + echo "CHECKED: mpicc and mpicxx point to correct path" # This seems to be necessary because of the docker container - name: disable ownership checks run: git config --global --add safe.directory '*' diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml index 41ecdd5eb1..a7c1c1f5ac 100644 --- a/.github/workflows/testsuite.yml +++ b/.github/workflows/testsuite.yml @@ -105,124 +105,124 @@ jobs: exit 0 fi - # # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. - # preparation: - # needs: [fine_grained_trigger] - # secrets: inherit - # if: needs.fine_grained_trigger.outputs.run_ci == 'true' - # uses: ./.github/workflows/test_preparation.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [OFF, ON] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run - # CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once - # MPI: ${{ matrix.MPI }} + # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. + preparation: + needs: [fine_grained_trigger] + secrets: inherit + if: needs.fine_grained_trigger.outputs.run_ci == 'true' + uses: ./.github/workflows/test_preparation.yml + strategy: + fail-fast: false + matrix: + MPI: [OFF, ON] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run + CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once + MPI: ${{ matrix.MPI }} - # # Run parallel tests for sc and p4est with and without MPI - # sc_p4est_tests: - # needs: preparation - # uses: ./.github/workflows/test_sc_p4est.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [OFF, ON] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # MPI: ${{ matrix.MPI }} + # Run parallel tests for sc and p4est with and without MPI + sc_p4est_tests: + needs: preparation + uses: ./.github/workflows/test_sc_p4est.yml + strategy: + fail-fast: false + matrix: + MPI: [OFF, ON] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + MPI: ${{ matrix.MPI }} - # # Run t8code tests with and without MPI and in serial and debug mode - # t8code_tests: - # needs: preparation - # uses: ./.github/workflows/test_t8code.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [OFF, ON] - # BUILD_TYPE: [Debug, Release] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # MPI: ${{ matrix.MPI }} - # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # Run t8code tests with and without MPI and in serial and debug mode + t8code_tests: + needs: preparation + uses: ./.github/workflows/test_t8code.yml + strategy: + fail-fast: false + matrix: + MPI: [OFF, ON] + BUILD_TYPE: [Debug, Release] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + MPI: ${{ matrix.MPI }} + BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # # Run t8code linkage tests with and without MPI and in serial and debug mode - # t8code_linkage_tests: - # needs: preparation - # uses: ./.github/workflows/test_t8code_linkage.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [OFF, ON] - # BUILD_TYPE: [Debug, Release] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # MPI: ${{ matrix.MPI }} - # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # Run t8code linkage tests with and without MPI and in serial and debug mode + t8code_linkage_tests: + needs: preparation + uses: ./.github/workflows/test_t8code_linkage.yml + strategy: + fail-fast: false + matrix: + MPI: [OFF, ON] + BUILD_TYPE: [Debug, Release] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + MPI: ${{ matrix.MPI }} + BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # # Run t8code linkage tests with and without MPI and in serial and debug mode - # t8code_api_tests: - # needs: preparation - # uses: ./.github/workflows/test_t8code_api.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [ON] # For now the fortran API only supports building with MPI - # BUILD_TYPE: [Debug, Release] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # MPI: ${{ matrix.MPI }} - # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # Run t8code linkage tests with and without MPI and in serial and debug mode + t8code_api_tests: + needs: preparation + uses: ./.github/workflows/test_t8code_api.yml + strategy: + fail-fast: false + matrix: + MPI: [ON] # For now the fortran API only supports building with MPI + BUILD_TYPE: [Debug, Release] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + MPI: ${{ matrix.MPI }} + BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # # Run Valgrind check for every t8code test binary. - # t8code_valgrind_tests: - # if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. - # needs: preparation - # uses: ./.github/workflows/test_valgrind.yml - # with: - # MAKEFLAGS: -j4 - # MPI: ON - # BUILD_TYPE: Debug - # TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. + # Run Valgrind check for every t8code test binary. + t8code_valgrind_tests: + if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. + needs: preparation + uses: ./.github/workflows/test_valgrind.yml + with: + MAKEFLAGS: -j4 + MPI: ON + BUILD_TYPE: Debug + TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. - # # Generate code coverage and deploy to Codecov. - # t8code_code_coverage: - # if: (github.event_name != 'merge_group') - # needs: preparation - # uses: ./.github/workflows/code_coverage.yml - # with: - # MAKEFLAGS: -j4 - # MPI: ON - # BUILD_TYPE: Debug - # TEST_LEVEL: T8_TEST_LEVEL_BASIC - # secrets: - # CODE_COV: ${{ secrets.CODE_COV }} + # Generate code coverage and deploy to Codecov. + t8code_code_coverage: + if: (github.event_name != 'merge_group') + needs: preparation + uses: ./.github/workflows/code_coverage.yml + with: + MAKEFLAGS: -j4 + MPI: ON + BUILD_TYPE: Debug + TEST_LEVEL: T8_TEST_LEVEL_BASIC + secrets: + CODE_COV: ${{ secrets.CODE_COV }} - # # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. - # t8code_w_shipped_submodules_tests: - # needs: fine_grained_trigger - # secrets: inherit - # if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} - # uses: ./.github/workflows/test_t8code_w_shipped_submodules.yml - # with: - # MAKEFLAGS: -j4 - # MPI: ON - # BUILD_TYPE: Debug - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. + t8code_w_shipped_submodules_tests: + needs: fine_grained_trigger + secrets: inherit + if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} + uses: ./.github/workflows/test_t8code_w_shipped_submodules.yml + with: + MAKEFLAGS: -j4 + MPI: ON + BUILD_TYPE: Debug + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. # Check t8code building and testing with the Clang compiler and openmpi. # Note: This workflow is meant to detect Clang- or openmpi-specific issues missed by the remaining (gcc- and mpich-based) workflows. @@ -245,12 +245,12 @@ jobs: BUILD_TYPE: ${{ matrix.BUILD_TYPE }} TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # # Build doxygen documentation and check for errors / warnings. - # t8code_doxygen_check: - # uses: ./.github/workflows/check_doxygen.yml - # - # t8code_tarball: - # if: github.event.pull_request.draft == false - # uses: ./.github/workflows/test_tarball.yml - # with: - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # Build doxygen documentation and check for errors / warnings. + t8code_doxygen_check: + uses: ./.github/workflows/check_doxygen.yml + + t8code_tarball: + if: github.event.pull_request.draft == false + uses: ./.github/workflows/test_tarball.yml + with: + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. From e1cea224a03fa73d60b98787dfe4fab80d2fa249 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 08:12:33 +0100 Subject: [PATCH 64/99] Try building Clang version with VTK --- .../test_t8code_w_clang_and_ompi.yml | 2 +- .github/workflows/testsuite.yml | 238 +++++++++--------- 2 files changed, 120 insertions(+), 120 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 9909e2acfe..a7498bca9e 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -111,7 +111,7 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF"" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV # Run cmake - name: echo cmake line diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml index a7c1c1f5ac..55a9552d9a 100644 --- a/.github/workflows/testsuite.yml +++ b/.github/workflows/testsuite.yml @@ -105,124 +105,124 @@ jobs: exit 0 fi - # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. - preparation: - needs: [fine_grained_trigger] - secrets: inherit - if: needs.fine_grained_trigger.outputs.run_ci == 'true' - uses: ./.github/workflows/test_preparation.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run - CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once - MPI: ${{ matrix.MPI }} + # # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. + # preparation: + # needs: [fine_grained_trigger] + # secrets: inherit + # if: needs.fine_grained_trigger.outputs.run_ci == 'true' + # uses: ./.github/workflows/test_preparation.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run + # CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once + # MPI: ${{ matrix.MPI }} - # Run parallel tests for sc and p4est with and without MPI - sc_p4est_tests: - needs: preparation - uses: ./.github/workflows/test_sc_p4est.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} + # # Run parallel tests for sc and p4est with and without MPI + # sc_p4est_tests: + # needs: preparation + # uses: ./.github/workflows/test_sc_p4est.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} - # Run t8code tests with and without MPI and in serial and debug mode - t8code_tests: - needs: preparation - uses: ./.github/workflows/test_t8code.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - BUILD_TYPE: [Debug, Release] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} - BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # # Run t8code tests with and without MPI and in serial and debug mode + # t8code_tests: + # needs: preparation + # uses: ./.github/workflows/test_t8code.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} + # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # Run t8code linkage tests with and without MPI and in serial and debug mode - t8code_linkage_tests: - needs: preparation - uses: ./.github/workflows/test_t8code_linkage.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - BUILD_TYPE: [Debug, Release] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} - BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # # Run t8code linkage tests with and without MPI and in serial and debug mode + # t8code_linkage_tests: + # needs: preparation + # uses: ./.github/workflows/test_t8code_linkage.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} + # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # Run t8code linkage tests with and without MPI and in serial and debug mode - t8code_api_tests: - needs: preparation - uses: ./.github/workflows/test_t8code_api.yml - strategy: - fail-fast: false - matrix: - MPI: [ON] # For now the fortran API only supports building with MPI - BUILD_TYPE: [Debug, Release] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} - BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # # Run t8code linkage tests with and without MPI and in serial and debug mode + # t8code_api_tests: + # needs: preparation + # uses: ./.github/workflows/test_t8code_api.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [ON] # For now the fortran API only supports building with MPI + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} + # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # Run Valgrind check for every t8code test binary. - t8code_valgrind_tests: - if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. - needs: preparation - uses: ./.github/workflows/test_valgrind.yml - with: - MAKEFLAGS: -j4 - MPI: ON - BUILD_TYPE: Debug - TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. + # # Run Valgrind check for every t8code test binary. + # t8code_valgrind_tests: + # if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. + # needs: preparation + # uses: ./.github/workflows/test_valgrind.yml + # with: + # MAKEFLAGS: -j4 + # MPI: ON + # BUILD_TYPE: Debug + # TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. - # Generate code coverage and deploy to Codecov. - t8code_code_coverage: - if: (github.event_name != 'merge_group') - needs: preparation - uses: ./.github/workflows/code_coverage.yml - with: - MAKEFLAGS: -j4 - MPI: ON - BUILD_TYPE: Debug - TEST_LEVEL: T8_TEST_LEVEL_BASIC - secrets: - CODE_COV: ${{ secrets.CODE_COV }} + # # Generate code coverage and deploy to Codecov. + # t8code_code_coverage: + # if: (github.event_name != 'merge_group') + # needs: preparation + # uses: ./.github/workflows/code_coverage.yml + # with: + # MAKEFLAGS: -j4 + # MPI: ON + # BUILD_TYPE: Debug + # TEST_LEVEL: T8_TEST_LEVEL_BASIC + # secrets: + # CODE_COV: ${{ secrets.CODE_COV }} - # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. - t8code_w_shipped_submodules_tests: - needs: fine_grained_trigger - secrets: inherit - if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} - uses: ./.github/workflows/test_t8code_w_shipped_submodules.yml - with: - MAKEFLAGS: -j4 - MPI: ON - BUILD_TYPE: Debug - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. + # t8code_w_shipped_submodules_tests: + # needs: fine_grained_trigger + # secrets: inherit + # if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} + # uses: ./.github/workflows/test_t8code_w_shipped_submodules.yml + # with: + # MAKEFLAGS: -j4 + # MPI: ON + # BUILD_TYPE: Debug + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. # Check t8code building and testing with the Clang compiler and openmpi. # Note: This workflow is meant to detect Clang- or openmpi-specific issues missed by the remaining (gcc- and mpich-based) workflows. @@ -245,12 +245,12 @@ jobs: BUILD_TYPE: ${{ matrix.BUILD_TYPE }} TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # Build doxygen documentation and check for errors / warnings. - t8code_doxygen_check: - uses: ./.github/workflows/check_doxygen.yml + # # Build doxygen documentation and check for errors / warnings. + # t8code_doxygen_check: + # uses: ./.github/workflows/check_doxygen.yml - t8code_tarball: - if: github.event.pull_request.draft == false - uses: ./.github/workflows/test_tarball.yml - with: - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # t8code_tarball: + # if: github.event.pull_request.draft == false + # uses: ./.github/workflows/test_tarball.yml + # with: + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. From 6a542c67944ec482188f6f61f891612c455b9f19 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 08:49:45 +0100 Subject: [PATCH 65/99] Fix typo --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index a7498bca9e..da6a4236ab 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -111,7 +111,7 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF"" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV # Run cmake - name: echo cmake line From 3657afc0d060da5059626d3c1da5bbb8f752a96b Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 09:08:05 +0100 Subject: [PATCH 66/99] Try without vtk --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index da6a4236ab..9a3ead70fc 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -111,8 +111,9 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV + #run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF" # Run cmake - name: echo cmake line run: echo cmake ../ $CONFIG_OPTIONS From 90886df59d377bdcb2d60f33ad06fab7a5ec7ddc Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 09:27:11 +0100 Subject: [PATCH 67/99] Test with OCC --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 9a3ead70fc..32bf5aa4b5 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -111,7 +111,7 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV #run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF" # Run cmake From 1984de2cfef9043f38832074e2fbef722db15589 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 09:38:55 +0100 Subject: [PATCH 68/99] Try DCMAKE_PREFIX_PATH --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 32bf5aa4b5..990b36bf9c 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -110,8 +110,10 @@ jobs: - name: Set test level run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV + - name: Try to make OCC findable + run: $OCCT_INSTALL_PATH - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" + run: export CONFIG_OPTIONS="-DCMAKE_PREFIX_PATH=${OCCT_INSTALL_PATH} -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV #run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF" # Run cmake From e11b223d6c205c13b64e237b7b736ae74965bfda Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 09:50:13 +0100 Subject: [PATCH 69/99] Try again --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 990b36bf9c..3927c8a3c3 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -110,8 +110,8 @@ jobs: - name: Set test level run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - - name: Try to make OCC findable - run: $OCCT_INSTALL_PATH + # - name: Try to make OCC findable + # run: $OCCT_INSTALL_PATH - name: build config variables run: export CONFIG_OPTIONS="-DCMAKE_PREFIX_PATH=${OCCT_INSTALL_PATH} -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV From 75c98445dc052bc426b4ba6254bf832b098c5797 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 09:58:40 +0100 Subject: [PATCH 70/99] Try again --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 3927c8a3c3..ffef6a78b8 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -113,14 +113,16 @@ jobs: # - name: Try to make OCC findable # run: $OCCT_INSTALL_PATH - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_PREFIX_PATH=${OCCT_INSTALL_PATH} -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV #run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF" # Run cmake - name: echo cmake line run: echo cmake ../ $CONFIG_OPTIONS - name: cmake - run: mkdir build && cd build && cmake ../ $CONFIG_OPTIONS + run: | + export CASROOT=${OCCT_INSTALL_PATH} + mkdir build && cd build && cmake ../ $CONFIG_OPTIONS # On failure, upload logs - name: OnFailUploadLog if: failure() From e2de5f551a9aa4c5f571a9122a0295524aa503ca Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 10:18:50 +0100 Subject: [PATCH 71/99] Try simlink --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index ffef6a78b8..1bb87e0686 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -110,8 +110,8 @@ jobs: - name: Set test level run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - # - name: Try to make OCC findable - # run: $OCCT_INSTALL_PATH + - name: Try to make OCC findable + run: sudo ln -s $OCCT_INSTALL_PATH/inc /opt/occ/inc - name: build config variables run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV @@ -121,8 +121,9 @@ jobs: run: echo cmake ../ $CONFIG_OPTIONS - name: cmake run: | - export CASROOT=${OCCT_INSTALL_PATH} mkdir build && cd build && cmake ../ $CONFIG_OPTIONS + # export CASROOT=${OCCT_INSTALL_PATH} + # echo "CASROOT=$CASROOT" # On failure, upload logs - name: OnFailUploadLog if: failure() From c90e078aa9f3423dea7d4f6df7e6add5f7d62236 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 10:24:54 +0100 Subject: [PATCH 72/99] Try simlink again --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 1bb87e0686..118d8855fb 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -111,7 +111,9 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: Try to make OCC findable - run: sudo ln -s $OCCT_INSTALL_PATH/inc /opt/occ/inc + run: | + sudo mkdir -p /opt/occ + sudo ln -s $OCCT_INSTALL_PATH/inc /opt/occ/inc - name: build config variables run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV From da6735a902411d80a39aba4853400910288c16d7 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 10:28:04 +0100 Subject: [PATCH 73/99] Try simlink again --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 118d8855fb..cb4bfdc4f3 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -114,6 +114,7 @@ jobs: run: | sudo mkdir -p /opt/occ sudo ln -s $OCCT_INSTALL_PATH/inc /opt/occ/inc + ls /opt/occ/inc - name: build config variables run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV From 668725e8ed9287f8bf840c2c46b079827fc1a218 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 10:29:46 +0100 Subject: [PATCH 74/99] Peek into OCCT folder --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index cb4bfdc4f3..a65c0c2ab4 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -110,6 +110,10 @@ jobs: - name: Set test level run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV + - name: Peek into OCCT folder + run: | + cd $OCCT_INSTALL_PATH + ls * */* */*/* - name: Try to make OCC findable run: | sudo mkdir -p /opt/occ From d17ad73692b0bcbe97cfe54b2d81444768685a5e Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 10:41:27 +0100 Subject: [PATCH 75/99] Link include into inc --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index a65c0c2ab4..e1b820ead1 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -116,9 +116,7 @@ jobs: ls * */* */*/* - name: Try to make OCC findable run: | - sudo mkdir -p /opt/occ - sudo ln -s $OCCT_INSTALL_PATH/inc /opt/occ/inc - ls /opt/occ/inc + ln -s $OCCT_INSTALL_PATH/include $OCCT_INSTALL_PATH/inc - name: build config variables run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV @@ -128,9 +126,9 @@ jobs: run: echo cmake ../ $CONFIG_OPTIONS - name: cmake run: | + export CASROOT=${OCCT_INSTALL_PATH} + echo "CASROOT=$CASROOT" mkdir build && cd build && cmake ../ $CONFIG_OPTIONS - # export CASROOT=${OCCT_INSTALL_PATH} - # echo "CASROOT=$CASROOT" # On failure, upload logs - name: OnFailUploadLog if: failure() From 26d46a1d4325473dc90daa70f4c7840fb0f61151 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 10:45:39 +0100 Subject: [PATCH 76/99] Try more --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index e1b820ead1..4d8a5cd831 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -117,6 +117,8 @@ jobs: - name: Try to make OCC findable run: | ln -s $OCCT_INSTALL_PATH/include $OCCT_INSTALL_PATH/inc + mkdir -p /opt/occ + ln -sf $OCCT_INSTALL_PATH/inc /opt/occ/inc - name: build config variables run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV From a6221813a7075149ea3e4ad70eee35c5d306234e Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 10:46:31 +0100 Subject: [PATCH 77/99] Add sudo --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 4d8a5cd831..727609dba5 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -117,8 +117,12 @@ jobs: - name: Try to make OCC findable run: | ln -s $OCCT_INSTALL_PATH/include $OCCT_INSTALL_PATH/inc - mkdir -p /opt/occ - ln -sf $OCCT_INSTALL_PATH/inc /opt/occ/inc + sudo mkdir -p /opt/occ + sudo ln -sf $OCCT_INSTALL_PATH/inc /opt/occ/inc + echo "/opt/occ/inc contains" + ls /opt/occ/inc + echo "$OCCT_INSTALL_PATH/inc contains" + ls $OCCT_INSTALL_PATH/inc - name: build config variables run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV From e89d2ece00f808f258af5ea7e05dea0f771da7d6 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 10:54:25 +0100 Subject: [PATCH 78/99] Start messing with FindOpenCASCADE.cmake --- cmake/FindOpenCASCADE.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/FindOpenCASCADE.cmake b/cmake/FindOpenCASCADE.cmake index 6eb5c10c22..dc617f2c5b 100644 --- a/cmake/FindOpenCASCADE.cmake +++ b/cmake/FindOpenCASCADE.cmake @@ -34,7 +34,7 @@ IF( NOT OpenCASCADE_FOUND ) ENDIF( CMAKE_SIZEOF_VOID_P EQUAL 4 ) IF(UNIX) - set( _incsearchpath /usr/include/opencascade;/usr/include/;/opt/occ/inc;${CASROOT}/inc;${CASROOT}/include/ ) + set( _incsearchpath /usr/include/opencascade;/usr/include/;/opt/occ/inc;${CASROOT}/inc;${CASROOT}/include/;${CASROOT}/inc/opencascade/;${CASROOT}/include/opencascade/ ) set( _libsearchpath /usr/lib64;/usr/lib;/opt/occ/lib;${CASROOT}/lib64;${CASROOT}/lib ) ELSE(UNIX) IF (WIN32) From 8277f12b582bc6a78bcc8577850f244bd09cf43e Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 11:03:05 +0100 Subject: [PATCH 79/99] Set CASROOT for build step too --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 727609dba5..ac404fa0ab 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -144,9 +144,13 @@ jobs: path: build/CMakeFiles/CMakeOutput.log # Build with ninja - name: ninja - run: cd build && ninja $MAKEFLAGS + run: | + export CASROOT=${OCCT_INSTALL_PATH} + cd build && ninja $MAKEFLAGS - name: ninja install - run: cd build && ninja install $MAKEFLAGS + run: | + export CASROOT=${OCCT_INSTALL_PATH} + cd build && ninja install $MAKEFLAGS # # Part 3: Run t8code tests # ------------------------ From bf8a388984001a93352e72a41d207312bc17ccf4 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 11:14:00 +0100 Subject: [PATCH 80/99] Try adding Standard_Handle.hxx --- src/t8_cad/t8_cad.hxx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/t8_cad/t8_cad.hxx b/src/t8_cad/t8_cad.hxx index 82ddf19593..0047893c97 100644 --- a/src/t8_cad/t8_cad.hxx +++ b/src/t8_cad/t8_cad.hxx @@ -32,6 +32,7 @@ #include #include #include +#include /** * This class manages OpenCASCADE shapes and implements helper functions for working with the shapes. From c6107422768657e28f4294f7fb9429a33fb1c370 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 12:23:10 +0100 Subject: [PATCH 81/99] Try adding Standard_Handle.hxx before other headers --- src/t8_cad/t8_cad.hxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/t8_cad/t8_cad.hxx b/src/t8_cad/t8_cad.hxx index 0047893c97..d5c75e5bd4 100644 --- a/src/t8_cad/t8_cad.hxx +++ b/src/t8_cad/t8_cad.hxx @@ -28,11 +28,11 @@ #ifndef T8_CAD_HXX #define T8_CAD_HXX +#include #include #include #include #include -#include /** * This class manages OpenCASCADE shapes and implements helper functions for working with the shapes. From 8bbe13690b6add3b110eb90286bbfb4f21dd1ed0 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 12:30:03 +0100 Subject: [PATCH 82/99] Try uploading docker image --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index ac404fa0ab..b93927f597 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -69,6 +69,14 @@ jobs: - uses: actions/checkout@v6 with: fetch-depth: 0 + # + - name: Save docker image + run: docker save dlramr/t8code-ubuntu:t8-clang-dependencies -o t8code-clang.tar + - name: Upload artifact + uses: actions/upload-artifact@v5 + with: + name: t8code-image + path: t8code-clang.tar - name: Update packages run: apt-get update && apt-get upgrade -y - name: Show Clang version From 35b9b3e7a1d5cb1837dc2dac9ddabea00d0917f5 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 12:33:25 +0100 Subject: [PATCH 83/99] Add more standrad_handle --- src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.cxx | 1 + src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.hxx | 1 + 2 files changed, 2 insertions(+) diff --git a/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.cxx b/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.cxx index 158c112c04..3c614d28c6 100644 --- a/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.cxx +++ b/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.cxx @@ -25,6 +25,7 @@ * or the C interface \ref t8_geometry_cad.h. */ +#include #include #include #include diff --git a/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.hxx b/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.hxx index d81e1a0454..7379faae55 100644 --- a/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.hxx +++ b/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.hxx @@ -29,6 +29,7 @@ #ifndef T8_GEOMETRY_CAD_HXX #define T8_GEOMETRY_CAD_HXX +#include #include #include #include From d3b91d735f1a7fa03354954d3a7c0a6f7998d500 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 12:36:17 +0100 Subject: [PATCH 84/99] Try saving image --- .../test_t8code_w_clang_and_ompi.yml | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index b93927f597..237d9828a0 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -54,6 +54,21 @@ on: default: 'T8_TEST_LEVEL_FULL' jobs: + save-image: + runs-on: ubuntu-latest # runs on a VM with Docker + steps: + - name: Pull image + run: docker pull dlramr/t8code-ubuntu:t8-clang-dependencies + + - name: Save image as tarball + run: docker save dlramr/t8code-ubuntu:t8-clang-dependencies -o t8code-clang.tar + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: t8code-image + path: t8code-clang.tar + t8code_cmake_tests: # # Container setup: To avoid unwanted side effects of gcc or mpich, an own Clang version of the @@ -69,14 +84,6 @@ jobs: - uses: actions/checkout@v6 with: fetch-depth: 0 - # - - name: Save docker image - run: docker save dlramr/t8code-ubuntu:t8-clang-dependencies -o t8code-clang.tar - - name: Upload artifact - uses: actions/upload-artifact@v5 - with: - name: t8code-image - path: t8code-clang.tar - name: Update packages run: apt-get update && apt-get upgrade -y - name: Show Clang version From 1eee9a437d294715e821221e6c4a6a28a2ae711d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 12:40:29 +0100 Subject: [PATCH 85/99] Try again --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 237d9828a0..949a59ca10 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -64,7 +64,7 @@ jobs: run: docker save dlramr/t8code-ubuntu:t8-clang-dependencies -o t8code-clang.tar - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v5 with: name: t8code-image path: t8code-clang.tar From a3d61ac0f1d76086edfea9c4b2b6a5e83ef81635 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 13:48:52 +0100 Subject: [PATCH 86/99] Check opencascade version --- .github/workflows/test_t8code_linkage.yml | 2 + .github/workflows/testsuite.yml | 56 +++++++++++------------ 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/.github/workflows/test_t8code_linkage.yml b/.github/workflows/test_t8code_linkage.yml index f6e2a20bf0..7e2c5f51cf 100644 --- a/.github/workflows/test_t8code_linkage.yml +++ b/.github/workflows/test_t8code_linkage.yml @@ -122,6 +122,8 @@ jobs: # cmake and test with OpenCASCADE - name: check OpenCASCADE run: echo "Checking OpenCASCADE" + - name: Show OpenCASCADE version + run: dpkg -l | grep opencascade - name: echo cmake line run: echo cmake ../ $CONFIG_OPTIONS -DT8CODE_ENABLE_OCC=ON - name: cmake OpenCASCADE diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml index 210be5ff40..acd5dfe6f1 100644 --- a/.github/workflows/testsuite.yml +++ b/.github/workflows/testsuite.yml @@ -105,23 +105,23 @@ jobs: exit 0 fi - # # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. - # preparation: - # needs: [fine_grained_trigger] - # secrets: inherit - # if: needs.fine_grained_trigger.outputs.run_ci == 'true' - # uses: ./.github/workflows/test_preparation.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [OFF, ON] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run - # CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once - # MPI: ${{ matrix.MPI }} + # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. + preparation: + needs: [fine_grained_trigger] + secrets: inherit + if: needs.fine_grained_trigger.outputs.run_ci == 'true' + uses: ./.github/workflows/test_preparation.yml + strategy: + fail-fast: false + matrix: + MPI: [OFF, ON] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run + CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once + MPI: ${{ matrix.MPI }} # # Run parallel tests for sc and p4est with and without MPI # sc_p4est_tests: @@ -154,17 +154,17 @@ jobs: # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # # Run t8code linkage tests with and without MPI and in serial and debug mode - # t8code_linkage_tests: - # needs: preparation - # uses: ./.github/workflows/test_t8code_linkage.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [OFF, ON] - # BUILD_TYPE: [Debug, Release] - # include: - # - MAKEFLAGS: -j4 + # Run t8code linkage tests with and without MPI and in serial and debug mode + t8code_linkage_tests: + needs: preparation + uses: ./.github/workflows/test_t8code_linkage.yml + strategy: + fail-fast: false + matrix: + MPI: [OFF, ON] + BUILD_TYPE: [Debug, Release] + include: + - MAKEFLAGS: -j4 # with: # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} # MPI: ${{ matrix.MPI }} From fac405651c490c878cf10f0576f8417760df88b7 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Thu, 15 Jan 2026 13:57:42 +0100 Subject: [PATCH 87/99] Check opencascade version --- .github/workflows/testsuite.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml index acd5dfe6f1..2471e472af 100644 --- a/.github/workflows/testsuite.yml +++ b/.github/workflows/testsuite.yml @@ -165,11 +165,11 @@ jobs: BUILD_TYPE: [Debug, Release] include: - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # MPI: ${{ matrix.MPI }} - # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + MPI: ${{ matrix.MPI }} + BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. # # Run t8code linkage tests with and without MPI and in serial and debug mode # t8code_api_tests: From 750213354a4016d9deccc047c2c685cb4628536d Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 09:04:19 +0100 Subject: [PATCH 88/99] Try once again without external libraries --- .../test_t8code_w_clang_and_ompi.yml | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 949a59ca10..228f259c19 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -125,21 +125,21 @@ jobs: - name: Set test level run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - - name: Peek into OCCT folder - run: | - cd $OCCT_INSTALL_PATH - ls * */* */*/* - - name: Try to make OCC findable - run: | - ln -s $OCCT_INSTALL_PATH/include $OCCT_INSTALL_PATH/inc - sudo mkdir -p /opt/occ - sudo ln -sf $OCCT_INSTALL_PATH/inc /opt/occ/inc - echo "/opt/occ/inc contains" - ls /opt/occ/inc - echo "$OCCT_INSTALL_PATH/inc contains" - ls $OCCT_INSTALL_PATH/inc + # - name: Peek into OCCT folder + # run: | + # cd $OCCT_INSTALL_PATH + # ls * */* */*/* + # - name: Try to make OCC findable + # run: | + # ln -s $OCCT_INSTALL_PATH/include $OCCT_INSTALL_PATH/inc + # sudo mkdir -p /opt/occ + # sudo ln -sf $OCCT_INSTALL_PATH/inc /opt/occ/inc + # echo "/opt/occ/inc contains" + # ls /opt/occ/inc + # echo "$OCCT_INSTALL_PATH/inc contains" + # ls $OCCT_INSTALL_PATH/inc - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=OFF" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV #run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF" # Run cmake From d73f5dba8c1fb71ece310395f1abb8f8884f2567 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 09:14:55 +0100 Subject: [PATCH 89/99] Try with OCC again --- .../test_t8code_w_clang_and_ompi.yml | 44 ++++++------- .github/workflows/testsuite.yml | 66 +++++++++---------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 228f259c19..dc97a7f1a7 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -54,20 +54,20 @@ on: default: 'T8_TEST_LEVEL_FULL' jobs: - save-image: - runs-on: ubuntu-latest # runs on a VM with Docker - steps: - - name: Pull image - run: docker pull dlramr/t8code-ubuntu:t8-clang-dependencies + # save-image: + # runs-on: ubuntu-latest # runs on a VM with Docker + # steps: + # - name: Pull image + # run: docker pull dlramr/t8code-ubuntu:t8-clang-dependencies - - name: Save image as tarball - run: docker save dlramr/t8code-ubuntu:t8-clang-dependencies -o t8code-clang.tar + # - name: Save image as tarball + # run: docker save dlramr/t8code-ubuntu:t8-clang-dependencies -o t8code-clang.tar - - name: Upload artifact - uses: actions/upload-artifact@v5 - with: - name: t8code-image - path: t8code-clang.tar + # - name: Upload artifact + # uses: actions/upload-artifact@v5 + # with: + # name: t8code-image + # path: t8code-clang.tar t8code_cmake_tests: # @@ -129,17 +129,17 @@ jobs: # run: | # cd $OCCT_INSTALL_PATH # ls * */* */*/* - # - name: Try to make OCC findable - # run: | - # ln -s $OCCT_INSTALL_PATH/include $OCCT_INSTALL_PATH/inc - # sudo mkdir -p /opt/occ - # sudo ln -sf $OCCT_INSTALL_PATH/inc /opt/occ/inc - # echo "/opt/occ/inc contains" - # ls /opt/occ/inc - # echo "$OCCT_INSTALL_PATH/inc contains" - # ls $OCCT_INSTALL_PATH/inc + - name: Try to make OCC findable + run: | + ln -s $OCCT_INSTALL_PATH/include $OCCT_INSTALL_PATH/inc + sudo mkdir -p /opt/occ + sudo ln -sf $OCCT_INSTALL_PATH/inc /opt/occ/inc + echo "/opt/occ/inc contains" + ls /opt/occ/inc + echo "$OCCT_INSTALL_PATH/inc contains" + ls $OCCT_INSTALL_PATH/inc - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=OFF" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV #run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF" # Run cmake diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml index 2471e472af..210be5ff40 100644 --- a/.github/workflows/testsuite.yml +++ b/.github/workflows/testsuite.yml @@ -105,23 +105,23 @@ jobs: exit 0 fi - # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. - preparation: - needs: [fine_grained_trigger] - secrets: inherit - if: needs.fine_grained_trigger.outputs.run_ci == 'true' - uses: ./.github/workflows/test_preparation.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run - CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once - MPI: ${{ matrix.MPI }} + # # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. + # preparation: + # needs: [fine_grained_trigger] + # secrets: inherit + # if: needs.fine_grained_trigger.outputs.run_ci == 'true' + # uses: ./.github/workflows/test_preparation.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run + # CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once + # MPI: ${{ matrix.MPI }} # # Run parallel tests for sc and p4est with and without MPI # sc_p4est_tests: @@ -154,22 +154,22 @@ jobs: # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # Run t8code linkage tests with and without MPI and in serial and debug mode - t8code_linkage_tests: - needs: preparation - uses: ./.github/workflows/test_t8code_linkage.yml - strategy: - fail-fast: false - matrix: - MPI: [OFF, ON] - BUILD_TYPE: [Debug, Release] - include: - - MAKEFLAGS: -j4 - with: - MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - MPI: ${{ matrix.MPI }} - BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # # Run t8code linkage tests with and without MPI and in serial and debug mode + # t8code_linkage_tests: + # needs: preparation + # uses: ./.github/workflows/test_t8code_linkage.yml + # strategy: + # fail-fast: false + # matrix: + # MPI: [OFF, ON] + # BUILD_TYPE: [Debug, Release] + # include: + # - MAKEFLAGS: -j4 + # with: + # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + # MPI: ${{ matrix.MPI }} + # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. # # Run t8code linkage tests with and without MPI and in serial and debug mode # t8code_api_tests: From 43d32044f6933759f21fffe98a762a51106581bb Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 09:48:28 +0100 Subject: [PATCH 90/99] Set LD_LIBRARY_PATH --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index dc97a7f1a7..be1bf9ec0c 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -138,10 +138,13 @@ jobs: ls /opt/occ/inc echo "$OCCT_INSTALL_PATH/inc contains" ls $OCCT_INSTALL_PATH/inc + - name: Adjust LD_LIBRARY_PATH (TODO Move to docker image) + run: | + export LD_LIBRARY_PATH=$OCCT_INSTALL_PATH/lib:$LD_LIBRARY_PATH + echo LD_LIBRARY_PATH="$LD_LIBRARY_PATH" >> $GITHUB_ENV - name: build config variables run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV - #run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=${VTK_INSTALL_PATH}/lib/cmake/vtk-9.1 -DT8CODE_ENABLE_OCC=OFF -DT8CODE_ENABLE_NETCDF=OFF" # Run cmake - name: echo cmake line run: echo cmake ../ $CONFIG_OPTIONS From 9b6c2e90892f578a8abc95829b7d8542e41adf53 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 12:34:57 +0100 Subject: [PATCH 91/99] Try new docker image --- .../test_t8code_w_clang_and_ompi.yml | 40 +++++++++---------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index be1bf9ec0c..1a5692faf0 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -76,7 +76,7 @@ jobs: # Clang version of OpenMPI. timeout-minutes: 60 runs-on: ubuntu-latest - container: dlramr/t8code-ubuntu:t8-clang-dependencies + container: dlramr/t8code-ubuntu:t8-clanglight-dependencies steps: # # Part 1: Preparation and sanity checks @@ -128,31 +128,31 @@ jobs: # - name: Peek into OCCT folder # run: | # cd $OCCT_INSTALL_PATH - # ls * */* */*/* - - name: Try to make OCC findable - run: | - ln -s $OCCT_INSTALL_PATH/include $OCCT_INSTALL_PATH/inc - sudo mkdir -p /opt/occ - sudo ln -sf $OCCT_INSTALL_PATH/inc /opt/occ/inc - echo "/opt/occ/inc contains" - ls /opt/occ/inc - echo "$OCCT_INSTALL_PATH/inc contains" - ls $OCCT_INSTALL_PATH/inc - - name: Adjust LD_LIBRARY_PATH (TODO Move to docker image) - run: | - export LD_LIBRARY_PATH=$OCCT_INSTALL_PATH/lib:$LD_LIBRARY_PATH - echo LD_LIBRARY_PATH="$LD_LIBRARY_PATH" >> $GITHUB_ENV + # # ls * */* */*/* + # - name: Try to make OCC findable + # run: | + # ln -s $OCCT_INSTALL_PATH/include $OCCT_INSTALL_PATH/inc + # sudo mkdir -p /opt/occ + # sudo ln -sf $OCCT_INSTALL_PATH/inc /opt/occ/inc + # echo "/opt/occ/inc contains" + # ls /opt/occ/inc + # echo "$OCCT_INSTALL_PATH/inc contains" + # ls $OCCT_INSTALL_PATH/inc + # - name: Adjust LD_LIBRARY_PATH (TODO Move to docker image) + # run: | + # export LD_LIBRARY_PATH=$OCCT_INSTALL_PATH/lib:$LD_LIBRARY_PATH + # echo LD_LIBRARY_PATH="$LD_LIBRARY_PATH" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_OCC=ON" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_NETCDF=ON -DT8CODE_ENABLE_OCC=ON" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV # Run cmake - name: echo cmake line run: echo cmake ../ $CONFIG_OPTIONS - name: cmake run: | - export CASROOT=${OCCT_INSTALL_PATH} - echo "CASROOT=$CASROOT" - mkdir build && cd build && cmake ../ $CONFIG_OPTIONS + mkdir build && cd build && cmake ../ $CONFIG_OPTIONS + # export CASROOT=${OCCT_INSTALL_PATH} + # echo "CASROOT=$CASROOT" # On failure, upload logs - name: OnFailUploadLog if: failure() @@ -163,11 +163,9 @@ jobs: # Build with ninja - name: ninja run: | - export CASROOT=${OCCT_INSTALL_PATH} cd build && ninja $MAKEFLAGS - name: ninja install run: | - export CASROOT=${OCCT_INSTALL_PATH} cd build && ninja install $MAKEFLAGS # # Part 3: Run t8code tests From 1f0d1cada15f8fd596b5bce0582014761ad226bb Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 15:13:55 +0100 Subject: [PATCH 92/99] Move back to lighter clang docker container --- .github/workflows/test_t8code_linkage.yml | 2 - .../test_t8code_w_clang_and_ompi.yml | 47 ++----------------- cmake/FindOpenCASCADE.cmake | 2 +- src/t8_cad/t8_cad.hxx | 1 - .../t8_geometry_cad.cxx | 1 - .../t8_geometry_cad.hxx | 1 - 6 files changed, 6 insertions(+), 48 deletions(-) diff --git a/.github/workflows/test_t8code_linkage.yml b/.github/workflows/test_t8code_linkage.yml index 7e2c5f51cf..f6e2a20bf0 100644 --- a/.github/workflows/test_t8code_linkage.yml +++ b/.github/workflows/test_t8code_linkage.yml @@ -122,8 +122,6 @@ jobs: # cmake and test with OpenCASCADE - name: check OpenCASCADE run: echo "Checking OpenCASCADE" - - name: Show OpenCASCADE version - run: dpkg -l | grep opencascade - name: echo cmake line run: echo cmake ../ $CONFIG_OPTIONS -DT8CODE_ENABLE_OCC=ON - name: cmake OpenCASCADE diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 1a5692faf0..ba0a79636a 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -54,21 +54,6 @@ on: default: 'T8_TEST_LEVEL_FULL' jobs: - # save-image: - # runs-on: ubuntu-latest # runs on a VM with Docker - # steps: - # - name: Pull image - # run: docker pull dlramr/t8code-ubuntu:t8-clang-dependencies - - # - name: Save image as tarball - # run: docker save dlramr/t8code-ubuntu:t8-clang-dependencies -o t8code-clang.tar - - # - name: Upload artifact - # uses: actions/upload-artifact@v5 - # with: - # name: t8code-image - # path: t8code-clang.tar - t8code_cmake_tests: # # Container setup: To avoid unwanted side effects of gcc or mpich, an own Clang version of the @@ -76,7 +61,7 @@ jobs: # Clang version of OpenMPI. timeout-minutes: 60 runs-on: ubuntu-latest - container: dlramr/t8code-ubuntu:t8-clanglight-dependencies + container: dlramr/t8code-ubuntu:t8-clang-dependencies steps: # # Part 1: Preparation and sanity checks @@ -125,34 +110,14 @@ jobs: - name: Set test level run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - # - name: Peek into OCCT folder - # run: | - # cd $OCCT_INSTALL_PATH - # # ls * */* */*/* - # - name: Try to make OCC findable - # run: | - # ln -s $OCCT_INSTALL_PATH/include $OCCT_INSTALL_PATH/inc - # sudo mkdir -p /opt/occ - # sudo ln -sf $OCCT_INSTALL_PATH/inc /opt/occ/inc - # echo "/opt/occ/inc contains" - # ls /opt/occ/inc - # echo "$OCCT_INSTALL_PATH/inc contains" - # ls $OCCT_INSTALL_PATH/inc - # - name: Adjust LD_LIBRARY_PATH (TODO Move to docker image) - # run: | - # export LD_LIBRARY_PATH=$OCCT_INSTALL_PATH/lib:$LD_LIBRARY_PATH - # echo LD_LIBRARY_PATH="$LD_LIBRARY_PATH" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_NETCDF=ON -DT8CODE_ENABLE_OCC=ON" + run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_NETCDF=ON -DT8CODE_ENABLE_OCC=ON -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=$VTK_INSTALL_PATH/lib/cmake/vtk-9.1" && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV # Run cmake - name: echo cmake line run: echo cmake ../ $CONFIG_OPTIONS - name: cmake - run: | - mkdir build && cd build && cmake ../ $CONFIG_OPTIONS - # export CASROOT=${OCCT_INSTALL_PATH} - # echo "CASROOT=$CASROOT" + run: mkdir build && cd build && cmake ../ $CONFIG_OPTIONS # On failure, upload logs - name: OnFailUploadLog if: failure() @@ -162,11 +127,9 @@ jobs: path: build/CMakeFiles/CMakeOutput.log # Build with ninja - name: ninja - run: | - cd build && ninja $MAKEFLAGS + run: cd build && ninja $MAKEFLAGS - name: ninja install - run: | - cd build && ninja install $MAKEFLAGS + run: cd build && ninja install $MAKEFLAGS # # Part 3: Run t8code tests # ------------------------ diff --git a/cmake/FindOpenCASCADE.cmake b/cmake/FindOpenCASCADE.cmake index dc617f2c5b..6eb5c10c22 100644 --- a/cmake/FindOpenCASCADE.cmake +++ b/cmake/FindOpenCASCADE.cmake @@ -34,7 +34,7 @@ IF( NOT OpenCASCADE_FOUND ) ENDIF( CMAKE_SIZEOF_VOID_P EQUAL 4 ) IF(UNIX) - set( _incsearchpath /usr/include/opencascade;/usr/include/;/opt/occ/inc;${CASROOT}/inc;${CASROOT}/include/;${CASROOT}/inc/opencascade/;${CASROOT}/include/opencascade/ ) + set( _incsearchpath /usr/include/opencascade;/usr/include/;/opt/occ/inc;${CASROOT}/inc;${CASROOT}/include/ ) set( _libsearchpath /usr/lib64;/usr/lib;/opt/occ/lib;${CASROOT}/lib64;${CASROOT}/lib ) ELSE(UNIX) IF (WIN32) diff --git a/src/t8_cad/t8_cad.hxx b/src/t8_cad/t8_cad.hxx index d5c75e5bd4..82ddf19593 100644 --- a/src/t8_cad/t8_cad.hxx +++ b/src/t8_cad/t8_cad.hxx @@ -28,7 +28,6 @@ #ifndef T8_CAD_HXX #define T8_CAD_HXX -#include #include #include #include diff --git a/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.cxx b/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.cxx index 3c614d28c6..158c112c04 100644 --- a/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.cxx +++ b/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.cxx @@ -25,7 +25,6 @@ * or the C interface \ref t8_geometry_cad.h. */ -#include #include #include #include diff --git a/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.hxx b/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.hxx index 7379faae55..d81e1a0454 100644 --- a/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.hxx +++ b/src/t8_geometry/t8_geometry_implementations/t8_geometry_cad.hxx @@ -29,7 +29,6 @@ #ifndef T8_GEOMETRY_CAD_HXX #define T8_GEOMETRY_CAD_HXX -#include #include #include #include From 85f6526e9f35331a833710e81d34348ce3ab53d0 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 15:19:52 +0100 Subject: [PATCH 93/99] Extended a comment --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index ba0a79636a..01c3ca28d6 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -33,7 +33,7 @@ env: on: workflow_call: # Note: To simplify adding more configurations of this workflow later, the MPI mode and the BUILD_TYPE - # are passed as input. + # are passed as input, although currently only MPI on and Debug mode are tested. inputs: MAKEFLAGS: required: true From a61555d7b02d7dbe3866a388e1552382e61aa264 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 15:38:31 +0100 Subject: [PATCH 94/99] Reactivate gcc-based workflows --- .github/workflows/testsuite.yml | 267 ++++++++++++++------------------ 1 file changed, 116 insertions(+), 151 deletions(-) diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml index 210be5ff40..b0c1ea7cc7 100644 --- a/.github/workflows/testsuite.yml +++ b/.github/workflows/testsuite.yml @@ -105,124 +105,121 @@ jobs: exit 0 fi - # # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. - # preparation: - # needs: [fine_grained_trigger] - # secrets: inherit - # if: needs.fine_grained_trigger.outputs.run_ci == 'true' - # uses: ./.github/workflows/test_preparation.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [OFF, ON] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run - # CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once - # MPI: ${{ matrix.MPI }} + # Preparation step for tests. Repo is cloned and sc + p4est are compiled with and without MPI. + preparation: + needs: [fine_grained_trigger] + secrets: inherit + if: needs.fine_grained_trigger.outputs.run_ci == 'true' + uses: ./.github/workflows/test_preparation.yml + strategy: + fail-fast: false + matrix: + MPI: [OFF, ON] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + IGNORE_CACHE: false # Use this to force a new installation of sc and p4est for this specific workflow run + CACHE_COUNTER: 0 # Increase this number to force a new installation of sc and p4est and to update the cache once + MPI: ${{ matrix.MPI }} - # # Run parallel tests for sc and p4est with and without MPI - # sc_p4est_tests: - # needs: preparation - # uses: ./.github/workflows/test_sc_p4est.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [OFF, ON] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # MPI: ${{ matrix.MPI }} + # Run parallel tests for sc and p4est with and without MPI + sc_p4est_tests: + needs: preparation + uses: ./.github/workflows/test_sc_p4est.yml + strategy: + fail-fast: false + matrix: + MPI: [OFF, ON] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + MPI: ${{ matrix.MPI }} - # # Run t8code tests with and without MPI and in serial and debug mode - # t8code_tests: - # needs: preparation - # uses: ./.github/workflows/test_t8code.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [OFF, ON] - # BUILD_TYPE: [Debug, Release] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # MPI: ${{ matrix.MPI }} - # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # Run t8code tests with and without MPI and in serial and debug mode + t8code_tests: + needs: preparation + uses: ./.github/workflows/test_t8code.yml + strategy: + fail-fast: false + matrix: + MPI: [OFF, ON] + BUILD_TYPE: [Debug, Release] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + MPI: ${{ matrix.MPI }} + BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # # Run t8code linkage tests with and without MPI and in serial and debug mode - # t8code_linkage_tests: - # needs: preparation - # uses: ./.github/workflows/test_t8code_linkage.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [OFF, ON] - # BUILD_TYPE: [Debug, Release] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # MPI: ${{ matrix.MPI }} - # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # Run t8code linkage tests with and without MPI and in serial and debug mode + t8code_linkage_tests: + needs: preparation + uses: ./.github/workflows/test_t8code_linkage.yml + strategy: + fail-fast: false + matrix: + MPI: [OFF, ON] + BUILD_TYPE: [Debug, Release] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + MPI: ${{ matrix.MPI }} + BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # # Run t8code linkage tests with and without MPI and in serial and debug mode - # t8code_api_tests: - # needs: preparation - # uses: ./.github/workflows/test_t8code_api.yml - # strategy: - # fail-fast: false - # matrix: - # MPI: [ON] # For now the fortran API only supports building with MPI - # BUILD_TYPE: [Debug, Release] - # include: - # - MAKEFLAGS: -j4 - # with: - # MAKEFLAGS: ${{ matrix.MAKEFLAGS }} - # MPI: ${{ matrix.MPI }} - # BUILD_TYPE: ${{ matrix.BUILD_TYPE }} - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # Run t8code linkage tests with and without MPI and in serial and debug mode + t8code_api_tests: + needs: preparation + uses: ./.github/workflows/test_t8code_api.yml + strategy: + fail-fast: false + matrix: + MPI: [ON] # For now the fortran API only supports building with MPI + BUILD_TYPE: [Debug, Release] + include: + - MAKEFLAGS: -j4 + with: + MAKEFLAGS: ${{ matrix.MAKEFLAGS }} + MPI: ${{ matrix.MPI }} + BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # # Run Valgrind check for every t8code test binary. - # t8code_valgrind_tests: - # if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. - # needs: preparation - # uses: ./.github/workflows/test_valgrind.yml - # with: - # MAKEFLAGS: -j4 - # MPI: ON - # BUILD_TYPE: Debug - # TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. + # Run Valgrind check for every t8code test binary. + t8code_valgrind_tests: + if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. + needs: preparation + uses: ./.github/workflows/test_valgrind.yml + with: + TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. - # # Generate code coverage and deploy to Codecov. - # t8code_code_coverage: - # if: (github.event_name != 'merge_group') - # needs: preparation - # uses: ./.github/workflows/code_coverage.yml - # with: - # MAKEFLAGS: -j4 - # MPI: ON - # BUILD_TYPE: Debug - # TEST_LEVEL: T8_TEST_LEVEL_BASIC - # secrets: - # CODE_COV: ${{ secrets.CODE_COV }} + # Generate code coverage and deploy to Codecov. + t8code_code_coverage: + if: (github.event_name != 'merge_group') + needs: preparation + uses: ./.github/workflows/code_coverage.yml + with: + MAKEFLAGS: -j4 + MPI: ON + BUILD_TYPE: Debug + TEST_LEVEL: T8_TEST_LEVEL_BASIC + secrets: + CODE_COV: ${{ secrets.CODE_COV }} - # # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. - # t8code_w_shipped_submodules_tests: - # needs: fine_grained_trigger - # secrets: inherit - # if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} - # uses: ./.github/workflows/test_t8code_w_shipped_submodules.yml - # with: - # MAKEFLAGS: -j4 - # MPI: ON - # BUILD_TYPE: Debug - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. + t8code_w_shipped_submodules_tests: + needs: fine_grained_trigger + secrets: inherit + if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} + uses: ./.github/workflows/test_t8code_w_shipped_submodules.yml + with: + MAKEFLAGS: -j4 + MPI: ON + BUILD_TYPE: Debug + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. # Check t8code building and testing with the Clang compiler and openmpi. # Note: This workflow is meant to detect Clang- or openmpi-specific issues missed by the remaining (gcc- and mpich-based) workflows. @@ -245,44 +242,12 @@ jobs: BUILD_TYPE: ${{ matrix.BUILD_TYPE }} TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. - # # Build doxygen documentation and check for errors / warnings. - # t8code_doxygen_check: - # uses: ./.github/workflows/check_doxygen.yml - # Run Valgrind check for every t8code test binary. - #t8code_valgrind_tests: - # if: (github.event_name == 'schedule' && github.repository == 'DLR-AMR/t8code') # Only run the Valgrind check in the scheduled run. - # needs: preparation - # uses: ./.github/workflows/test_valgrind.yml - # with: - # TEST_LEVEL: T8_TEST_LEVEL_BASIC # Do Valgrind check for test level T8_TEST_LEVEL_BASIC for performance reasons. - - # Generate code coverage and deploy to Codecov. - #t8code_code_coverage: - # if: (github.event_name != 'merge_group') - # needs: preparation - # uses: ./.github/workflows/code_coverage.yml - # with: - # MAKEFLAGS: -j4 - # MPI: ON - # BUILD_TYPE: Debug - # TEST_LEVEL: T8_TEST_LEVEL_BASIC - # secrets: - # CODE_COV: ${{ secrets.CODE_COV }} - - # Run t8code tests with shipped submodules. This test is only for the build system, so only one config is tested. - #t8code_w_shipped_submodules_tests: - # needs: fine_grained_trigger - # secrets: inherit - # if: ${{ needs.fine_grained_trigger.outputs.run_ci == 'true' }} - # uses: ./.github/workflows/test_t8code_w_shipped_submodules.yml - # with: - # MAKEFLAGS: -j4 - # MPI: ON - # BUILD_TYPE: Debug - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + # Build doxygen documentation and check for errors / warnings. + t8code_doxygen_check: + uses: ./.github/workflows/check_doxygen.yml - # t8code_tarball: - # if: github.event.pull_request.draft == false - # uses: ./.github/workflows/test_tarball.yml - # with: - # TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. + t8code_tarball: + if: github.event.pull_request.draft == false + uses: ./.github/workflows/test_tarball.yml + with: + TEST_LEVEL: ${{ github.event_name == 'pull_request' && 'T8_TEST_LEVEL_MEDIUM' || 'T8_TEST_LEVEL_FULL' }} # Set TEST_LEVEL to medium if the event is a PR, otherwise full. From d1a4b7901d1215158d975a46e8a421669b6c234a Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 15:42:07 +0100 Subject: [PATCH 95/99] Updated some descriptions --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 4 ++-- .github/workflows/testsuite.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 01c3ca28d6..0b51381597 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -24,8 +24,8 @@ name: CMake tests t8code with Clang compiler and OpenMPI # This workflow checks whether building and testing works with the Clang compiler # and openmpi. It was added because all of t8code's remaining CI workflows rely # on gcc and mpich, hence missing Clang- or openmpi-specific issues. -# To reduce runtime, (for now) only Debug mode with MPI is tested; also, no external -# libraries like VTK, OpenCASCADE etc. are covered. +# To reduce runtime, (for now) only one configuration is run, that is, Debug mode +# with MPI and all external libraries (VTK, OpenCASCADE, NetCDF). env: DEBUG_CONFIG: "-O1" diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml index b0c1ea7cc7..631f7f48e8 100644 --- a/.github/workflows/testsuite.yml +++ b/.github/workflows/testsuite.yml @@ -223,7 +223,7 @@ jobs: # Check t8code building and testing with the Clang compiler and openmpi. # Note: This workflow is meant to detect Clang- or openmpi-specific issues missed by the remaining (gcc- and mpich-based) workflows. - # To reduce its runtime, it currently only used Debug mode with MPI on and does not link to external libraries like VTK or OpenCASCADE. + # To reduce its runtime, it currently only uses one run in Debug mode with MPI activated and all external libraries like VTK or OpenCASCADE. t8code_w_clang_and_ompi_tests: needs: fine_grained_trigger secrets: inherit From 13a3e5b0460bd8dadd421cb916762b1e12f4a7a4 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 15:49:07 +0100 Subject: [PATCH 96/99] Make CONFIG_OPTIONS more readable --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 0b51381597..b66d05de54 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -111,8 +111,12 @@ jobs: run: export TEST_LEVEL_FLAG="-DT8CODE_TEST_LEVEL=${{ inputs.TEST_LEVEL }}" && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables - run: export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DT8CODE_ENABLE_NETCDF=ON -DT8CODE_ENABLE_OCC=ON -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=$VTK_INSTALL_PATH/lib/cmake/vtk-9.1" - && echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV + run: | + export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} \ + -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DT8CODE_BUILD_FORTRAN_INTERFACE=ON -DT8CODE_BUILD_MESH_HANDLE=ON \ + -DT8CODE_ENABLE_NETCDF=ON -DT8CODE_ENABLE_OCC=ON -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=$VTK_INSTALL_PATH/lib/cmake/vtk-9.1" + echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV # Run cmake - name: echo cmake line run: echo cmake ../ $CONFIG_OPTIONS From 65602a32c3d0043c9242184e52ab280f36df5d23 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Fri, 16 Jan 2026 16:29:48 +0100 Subject: [PATCH 97/99] Set Fortran compiler --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index b66d05de54..6dddd22343 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -112,8 +112,9 @@ jobs: && echo TEST_LEVEL_FLAG="$TEST_LEVEL_FLAG" >> $GITHUB_ENV - name: build config variables run: | - export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx ${TEST_LEVEL_FLAG} -GNinja -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} \ - -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_Fortran_COMPILER=mpifort -GNinja \ + -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE ${TEST_LEVEL_FLAG} -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} \ + -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON \ -DT8CODE_BUILD_FORTRAN_INTERFACE=ON -DT8CODE_BUILD_MESH_HANDLE=ON \ -DT8CODE_ENABLE_NETCDF=ON -DT8CODE_ENABLE_OCC=ON -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=$VTK_INSTALL_PATH/lib/cmake/vtk-9.1" echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV From 5ad2d2798b18b685cddf48623a47b8fcb1e97e7f Mon Sep 17 00:00:00 2001 From: David Knapp Date: Tue, 27 Jan 2026 09:45:43 +0100 Subject: [PATCH 98/99] Update .github/workflows/test_t8code_w_clang_and_ompi.yml --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 6dddd22343..468edebefb 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -5,7 +5,7 @@ name: CMake tests t8code with Clang compiler and OpenMPI # t8code is a C library to manage a collection (a forest) of multiple # connected adaptive space-trees of general element types in parallel. # -# Copyright (C) 2025 the developers +# Copyright (C) 2026 the developers # # t8code is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by From 492da40077a28080abf75a1a4022c8316aeddf57 Mon Sep 17 00:00:00 2001 From: Thomas Spenke Date: Wed, 28 Jan 2026 12:58:54 +0100 Subject: [PATCH 99/99] Set -DT8CODE_BUILD_WERROR=ON --- .github/workflows/test_t8code_w_clang_and_ompi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_t8code_w_clang_and_ompi.yml b/.github/workflows/test_t8code_w_clang_and_ompi.yml index 468edebefb..90da57089b 100644 --- a/.github/workflows/test_t8code_w_clang_and_ompi.yml +++ b/.github/workflows/test_t8code_w_clang_and_ompi.yml @@ -114,7 +114,7 @@ jobs: run: | export CONFIG_OPTIONS="-DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_Fortran_COMPILER=mpifort -GNinja \ -DT8CODE_ENABLE_MPI=$MPI -DCMAKE_BUILD_TYPE=$BUILD_TYPE ${TEST_LEVEL_FLAG} -DCMAKE_C_FLAGS_DEBUG=${DEBUG_CONFIG} -DCMAKE_CXX_FLAGS_DEBUG=${DEBUG_CONFIG} \ - -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=OFF -DT8CODE_BUILD_WEXTRA=ON \ + -DT8CODE_BUILD_PEDANTIC=ON -DT8CODE_BUILD_WALL=ON -DT8CODE_BUILD_WERROR=ON -DT8CODE_BUILD_WEXTRA=ON \ -DT8CODE_BUILD_FORTRAN_INTERFACE=ON -DT8CODE_BUILD_MESH_HANDLE=ON \ -DT8CODE_ENABLE_NETCDF=ON -DT8CODE_ENABLE_OCC=ON -DT8CODE_ENABLE_VTK=ON -DVTK_DIR=$VTK_INSTALL_PATH/lib/cmake/vtk-9.1" echo CONFIG_OPTIONS="$CONFIG_OPTIONS" >> $GITHUB_ENV