Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
200 changes: 130 additions & 70 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ jobs:
cmake -S . -B build
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=install
env:
CC: clang-19
CXX: clang++-19
Expand All @@ -233,6 +233,39 @@ jobs:
env:
CC: clang-19
CXX: clang++-19
- name: Install project
run: |
cmake --build build --target install
- name: Archive installed package
run: |
tar -czvf ubuntu-clang-install.tar.gz -C install .
- name: Upload installed package
uses: actions/upload-artifact@v4
with:
name: ubuntu-clang-install
path: ubuntu-clang-install.tar.gz
ubuntu-clang-test:
needs:
- ubuntu-clang-build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup environment
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y ninja-build mpich python3-pip valgrind
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 19 all
- name: Download installed package
uses: actions/download-artifact@v4
with:
name: ubuntu-clang-install
- name: Extract installed package
run: |
mkdir -p install
tar -xzvf ubuntu-clang-install.tar.gz -C install
- name: Run func tests (MPI, num_proc=1)
run: |
source scripts/run_mpi.sh
Expand Down Expand Up @@ -273,14 +306,12 @@ jobs:
run: source scripts/run_threads.sh
env:
OMP_NUM_THREADS: 4
ubuntu-clang-build-extended:
ubuntu-clang-test-extended:
needs:
- ubuntu-clang-build
- ubuntu-clang-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup environment
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Expand All @@ -289,27 +320,14 @@ jobs:
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 19 all
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
- name: Download installed package
uses: actions/download-artifact@v4
with:
key: ${{ runner.os }}-clang
create-symlink: true
max-size: 1G
- name: CMake configure
run: >
cmake -S . -B build
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-D CMAKE_BUILD_TYPE=RELEASE
env:
CC: clang-19
CXX: clang++-19
- name: Build project
name: ubuntu-clang-install
- name: Extract installed package
run: |
cmake --build build --parallel
env:
CC: clang-19
CXX: clang++-19
mkdir -p install
tar -xzvf ubuntu-clang-install.tar.gz -C install
- name: Run tests (threads, num_threads=5)
run: source scripts/run_threads.sh
env:
Expand Down Expand Up @@ -371,6 +389,7 @@ jobs:
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-D CMAKE_BUILD_TYPE=RELEASE -D ENABLE_ADDRESS_SANITIZER=ON -D ENABLE_UB_SANITIZER=ON
-DCMAKE_INSTALL_PREFIX=install
env:
CC: clang-19
CXX: clang++-19
Expand All @@ -380,6 +399,39 @@ jobs:
env:
CC: clang-19
CXX: clang++-19
- name: Install project
run: |
cmake --build build --target install
- name: Archive installed package
run: |
tar -czvf ubuntu-clang-sanitizer-install.tar.gz -C install .
- name: Upload installed package
uses: actions/upload-artifact@v4
with:
name: ubuntu-clang-sanitizer-install
path: ubuntu-clang-sanitizer-install.tar.gz
ubuntu-clang-sanitizer-test:
needs:
- ubuntu-clang-sanitizer-build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup environment
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y ninja-build mpich python3-pip valgrind
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 19 all
- name: Download installed package
uses: actions/download-artifact@v4
with:
name: ubuntu-clang-sanitizer-install
- name: Extract installed package
run: |
mkdir -p install
tar -xzvf ubuntu-clang-sanitizer-install.tar.gz -C install
- name: Run tests (MPI)
run: |
source scripts/run_mpi.sh "--oversubscribe"
Expand Down Expand Up @@ -417,44 +469,28 @@ jobs:
ASAN_RUN: 1
ASAN_OPTIONS: abort_on_error=1
UBSAN_OPTIONS: halt_on_error=1
ubuntu-clang-sanitizer-build-extended:
ubuntu-clang-sanitizer-test-extended:
needs:
- ubuntu-clang-sanitizer-build
- ubuntu-clang-sanitizer-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup environment
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y ninja-build mpich libmpich* mpi* openmpi-bin python3-pip
sudo apt-get install -y ninja-build mpich python3-pip valgrind
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 19 all
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
- name: Download installed package
uses: actions/download-artifact@v4
with:
key: ${{ runner.os }}-clang
create-symlink: true
max-size: 1G
- name: CMake configure
run: >
cmake -S . -B build
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-D CMAKE_BUILD_TYPE=RELEASE -D ENABLE_ADDRESS_SANITIZER=ON -D ENABLE_UB_SANITIZER=ON
env:
CC: clang-19
CXX: clang++-19
- name: Build project
name: ubuntu-clang-sanitizer-install
- name: Extract installed package
run: |
cmake --build build --parallel
env:
CC: clang-19
CXX: clang++-19
mkdir -p install
tar -xzvf ubuntu-clang-sanitizer-install.tar.gz -C install
- name: Run tests (threads, num_threads=5)
run: source scripts/run_threads.sh
env:
Expand Down Expand Up @@ -525,9 +561,43 @@ jobs:
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-DCMAKE_C_FLAGS="-I$(brew --prefix)/opt/libomp/include" -DCMAKE_CXX_FLAGS="-I$(brew --prefix)/opt/libomp/include"
-D CMAKE_BUILD_TYPE=RELEASE -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-DCMAKE_INSTALL_PREFIX=install
- name: Build project
run: |
cmake --build build --parallel
- name: Install project
run: |
cmake --build build --target install
- name: Archive installed package
run: |
tar -czvf macos-clang-sanitizer-install.tar.gz -C install .
- name: Upload installed package
uses: actions/upload-artifact@v4
with:
name: macos-clang-sanitizer-install
path: macos-clang-sanitizer-install.tar.gz
macos-clang-test:
needs:
- macos-clang-build
runs-on: macOS-latest
steps:
- uses: actions/checkout@v4
- name: Setup environment
run: |
brew update-reset
brew install ninja mpich llvm
brew install libomp
brew link libomp --overwrite --force
brew install openssl
brew link openssl --overwrite --force
- name: Download installed package
uses: actions/download-artifact@v4
with:
name: macos-clang-sanitizer-install
- name: Extract installed package
run: |
mkdir -p install
tar -xzvf macos-clang-sanitizer-install.tar.gz -C install
- name: Run func tests (MPI, num_proc=1)
run: |
source scripts/run_mpi.sh
Expand Down Expand Up @@ -568,14 +638,12 @@ jobs:
run: source scripts/run_threads.sh
env:
OMP_NUM_THREADS: 4
macos-clang-build-extended:
macos-clang-test-extended:
needs:
- macos-clang-build
- macos-clang-test
runs-on: macOS-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup environment
run: |
brew update-reset
Expand All @@ -584,22 +652,14 @@ jobs:
brew link libomp --overwrite --force
brew install openssl
brew link openssl --overwrite --force
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
- name: Download installed package
uses: actions/download-artifact@v4
with:
key: ${{ runner.os }}-clang
create-symlink: true
max-size: 1G
- name: CMake configure
run: >
cmake -S . -B build
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-DCMAKE_C_FLAGS="-I$(brew --prefix)/opt/libomp/include" -DCMAKE_CXX_FLAGS="-I$(brew --prefix)/opt/libomp/include"
-D CMAKE_BUILD_TYPE=RELEASE -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
- name: Build project
name: macos-clang-sanitizer-install
- name: Extract installed package
run: |
cmake --build build --parallel
mkdir -p install
tar -xzvf macos-clang-sanitizer-install.tar.gz -C install
- name: Run tests (threads, num_threads=5)
run: source scripts/run_threads.sh
env:
Expand Down Expand Up @@ -897,8 +957,8 @@ jobs:
ubuntu-gcc-build-codecov:
needs:
- ubuntu-gcc-test-extended
- ubuntu-clang-build-extended
- macos-clang-build-extended
- ubuntu-clang-test-extended
- macos-clang-test-extended
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -977,7 +1037,7 @@ jobs:
ubuntu-gcc-build-perf-stats:
needs:
- ubuntu-gcc-build-codecov
- ubuntu-clang-sanitizer-build-extended
- ubuntu-clang-sanitizer-test-extended
- windows-clang-build-extended
- windows-msvc-build-extended
runs-on: ubuntu-latest
Expand Down
Loading