Skip to content

Commit be96c77

Browse files
authored
[CI] Split long CI jobs (#198)
Split to basic and extended jobs: - basic: MPI + threads with count 1-4 - extended: threads with count (5-16)
1 parent 22c830f commit be96c77

File tree

1 file changed

+212
-53
lines changed

1 file changed

+212
-53
lines changed

Diff for: .github/workflows/main.yml

+212-53
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,45 @@ jobs:
100100
run: source scripts/run_threads.sh
101101
env:
102102
OMP_NUM_THREADS: 4
103+
ubuntu-gcc-build-extended:
104+
needs:
105+
- ubuntu-gcc-build
106+
runs-on: ubuntu-latest
107+
steps:
108+
- uses: actions/checkout@v4
109+
with:
110+
submodules: recursive
111+
- name: Setup environment
112+
run: |
113+
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
114+
sudo apt-get update
115+
sudo apt-get install gcc-13 g++-13
116+
sudo apt-get install ninja-build
117+
sudo apt-get install mpich libmpich* mpi* openmpi-bin
118+
sudo apt-get install libomp-dev
119+
sudo apt-get install valgrind
120+
python3 -m pip install xlsxwriter
121+
- name: ccache
122+
uses: hendrikmuhs/[email protected]
123+
with:
124+
key: ${{ github.job }}
125+
create-symlink: true
126+
- name: CMake configure
127+
run: >
128+
cmake -S . -B build
129+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
130+
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
131+
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
132+
-D CMAKE_BUILD_TYPE=RELEASE
133+
env:
134+
CC: gcc-13
135+
CXX: g++-13
136+
- name: Ninja build
137+
run: |
138+
cmake --build build
139+
env:
140+
CC: gcc-13
141+
CXX: g++-13
103142
- name: Run func tests (threads, num_threads=5)
104143
run: source scripts/run_threads.sh
105144
env:
@@ -203,6 +242,45 @@ jobs:
203242
run: source scripts/run_threads.sh
204243
env:
205244
OMP_NUM_THREADS: 4
245+
ubuntu-clang-build-extended:
246+
needs:
247+
- ubuntu-clang-build
248+
runs-on: ubuntu-latest
249+
steps:
250+
- uses: actions/checkout@v4
251+
with:
252+
submodules: recursive
253+
- name: Setup environment
254+
run: |
255+
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
256+
sudo apt-get update
257+
sudo apt-get install ninja-build
258+
sudo apt-get install mpich libmpich* mpi* openmpi-bin
259+
sudo apt-get install python3-pip
260+
sudo apt-get install valgrind
261+
wget https://apt.llvm.org/llvm.sh
262+
chmod u+x llvm.sh
263+
sudo ./llvm.sh 19 all
264+
- name: ccache
265+
uses: hendrikmuhs/[email protected]
266+
with:
267+
key: ${{ github.job }}
268+
create-symlink: true
269+
- name: CMake configure
270+
run: >
271+
cmake -S . -B build
272+
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
273+
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
274+
-D CMAKE_BUILD_TYPE=RELEASE
275+
env:
276+
CC: clang-19
277+
CXX: clang++-19
278+
- name: Ninja build
279+
run: |
280+
cmake --build build
281+
env:
282+
CC: clang-19
283+
CXX: clang++-19
206284
- name: Run tests (threads, num_threads=5)
207285
run: source scripts/run_threads.sh
208286
env:
@@ -300,6 +378,45 @@ jobs:
300378
env:
301379
OMP_NUM_THREADS: 4
302380
ASAN_RUN: 1
381+
ubuntu-clang-sanitizer-build-extended:
382+
needs:
383+
- ubuntu-clang-sanitizer-build
384+
runs-on: ubuntu-latest
385+
steps:
386+
- uses: actions/checkout@v4
387+
with:
388+
submodules: recursive
389+
- name: Setup environment
390+
run: |
391+
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
392+
sudo apt-get update
393+
sudo apt-get install ninja-build
394+
sudo apt-get install mpich libmpich* mpi* openmpi-bin
395+
sudo apt-get install python3-pip
396+
wget https://apt.llvm.org/llvm.sh
397+
chmod u+x llvm.sh
398+
sudo ./llvm.sh 19 all
399+
- name: ccache
400+
uses: hendrikmuhs/[email protected]
401+
with:
402+
key: ${{ github.job }}
403+
create-symlink: true
404+
- name: CMake configure
405+
run: >
406+
cmake -S . -B build
407+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
408+
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
409+
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
410+
-D CMAKE_BUILD_TYPE=RELEASE -D ENABLE_ADDRESS_SANITIZER=ON -D ENABLE_UB_SANITIZER=ON
411+
env:
412+
CC: clang-19
413+
CXX: clang++-19
414+
- name: Ninja build
415+
run: |
416+
cmake --build build
417+
env:
418+
CC: clang-19
419+
CXX: clang++-19
303420
- name: Run tests (threads, num_threads=5)
304421
run: source scripts/run_threads.sh
305422
env:
@@ -403,6 +520,37 @@ jobs:
403520
run: source scripts/run_threads.sh
404521
env:
405522
OMP_NUM_THREADS: 4
523+
macos-clang-build-extended:
524+
needs:
525+
- macos-clang-build
526+
runs-on: macOS-latest
527+
steps:
528+
- uses: actions/checkout@v4
529+
with:
530+
submodules: recursive
531+
- name: Setup environment
532+
run: |
533+
brew update-reset
534+
brew install ninja mpich llvm
535+
brew install libomp
536+
brew link libomp --overwrite --force
537+
brew install openssl
538+
brew link openssl --overwrite --force
539+
- name: ccache
540+
uses: hendrikmuhs/[email protected]
541+
with:
542+
key: ${{ github.job }}
543+
create-symlink: true
544+
- name: CMake configure
545+
run: >
546+
cmake -S . -B build
547+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
548+
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
549+
-DCMAKE_C_FLAGS="-I$(brew --prefix)/opt/libomp/include" -DCMAKE_CXX_FLAGS="-I$(brew --prefix)/opt/libomp/include"
550+
-D CMAKE_BUILD_TYPE=RELEASE -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
551+
- name: Ninja build
552+
run: |
553+
cmake --build build
406554
- name: Run tests (threads, num_threads=5)
407555
run: source scripts/run_threads.sh
408556
env:
@@ -488,6 +636,42 @@ jobs:
488636
run: scripts/run.bat
489637
env:
490638
OMP_NUM_THREADS: 4
639+
windows-msvc-build-extended:
640+
needs:
641+
- windows-msvc-build
642+
runs-on: windows-latest
643+
defaults:
644+
run:
645+
shell: bash
646+
steps:
647+
- uses: actions/checkout@v4
648+
with:
649+
submodules: recursive
650+
- name: Add msbuild to PATH
651+
uses: microsoft/[email protected]
652+
- name: Setup MPI
653+
uses: mpi4py/setup-mpi@v1
654+
with:
655+
mpi: msmpi
656+
- name: Download dependencies
657+
run: |
658+
choco install openssl --execution-timeout 6000
659+
- name: Setup ccache
660+
uses: Chocobo1/setup-ccache-action@v1
661+
with:
662+
windows_compile_environment: msvc
663+
- name: CMake configure
664+
shell: bash
665+
run: >
666+
cmake -S . -B build
667+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
668+
-D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
669+
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
670+
-D CMAKE_BUILD_TYPE=RELEASE
671+
- name: MSBuild
672+
shell: bash
673+
run: |
674+
cmake --build build --config Release --parallel
491675
- name: Run tests (threads, num_threads=5)
492676
run: scripts/run.bat
493677
env:
@@ -569,6 +753,34 @@ jobs:
569753
env:
570754
OMP_NUM_THREADS: 4
571755
CLANG_BUILD: 1
756+
windows-clang-build-extended:
757+
needs:
758+
- windows-clang-build
759+
runs-on: windows-latest
760+
defaults:
761+
run:
762+
shell: bash
763+
steps:
764+
- uses: actions/checkout@v4
765+
with:
766+
submodules: recursive
767+
- name: Add msbuild to PATH
768+
uses: microsoft/[email protected]
769+
- name: CMake configure
770+
run: >
771+
cmake -S . -B build -A x64 -T ClangCL
772+
-D USE_SEQ=ON -D USE_MPI=OFF -D USE_OMP=OFF -D USE_TBB=ON -D USE_STL=ON
773+
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
774+
-D CMAKE_BUILD_TYPE=RELEASE
775+
env:
776+
CC: clang-cl
777+
CXX: clang-cl
778+
- name: Ninja build
779+
run: |
780+
cmake --build build --config Release --parallel -v
781+
env:
782+
CC: clang-cl
783+
CXX: clang-cl
572784
- name: Run tests (threads, num_threads=5)
573785
run: scripts/run.bat
574786
env:
@@ -658,59 +870,6 @@ jobs:
658870
run: source scripts/run_threads.sh
659871
env:
660872
OMP_NUM_THREADS: 4
661-
- name: Run tests (threads, num_threads=5)
662-
run: source scripts/run_threads.sh
663-
env:
664-
OMP_NUM_THREADS: 5
665-
- name: Run tests (threads, num_threads=6)
666-
run: source scripts/run_threads.sh
667-
env:
668-
OMP_NUM_THREADS: 6
669-
- name: Run tests (threads, num_threads=7)
670-
run: source scripts/run_threads.sh
671-
env:
672-
OMP_NUM_THREADS: 7
673-
- name: Run tests (threads, num_threads=8)
674-
run: source scripts/run_threads.sh
675-
env:
676-
OMP_NUM_THREADS: 8
677-
- name: Run tests (threads, num_threads=11)
678-
run: source scripts/run_threads.sh
679-
env:
680-
OMP_NUM_THREADS: 11
681-
- name: Run tests (threads, num_threads=13)
682-
run: source scripts/run_threads.sh
683-
env:
684-
OMP_NUM_THREADS: 13
685-
- name: Run tests (threads, num_threads=15)
686-
run: source scripts/run_threads.sh
687-
env:
688-
OMP_NUM_THREADS: 15
689-
- name: Run tests (threads, num_threads=16)
690-
run: source scripts/run_threads.sh
691-
env:
692-
OMP_NUM_THREADS: 16
693-
- name: Generate gcovr Coverage Data
694-
run: |
695-
cd build
696-
gcovr -r ../ --xml --output ../coverage.xml
697-
- name: Upload coverage reports to Codecov
698-
uses: codecov/[email protected]
699-
with:
700-
token: db9388ce-cf24-4840-b282-8e0070d8666f
701-
files: coverage.xml
702-
- name: Generate lcov Coverage Data
703-
run: |
704-
cd build
705-
lcov --capture --directory . --output-file ../coverage.info
706-
lcov --remove ../coverage.info '*/3rdparty/*' '/usr/*' '*/perf_tests/*' '*/func_tests/*' --output-file ../coverage.info
707-
cd ..
708-
genhtml coverage.info --output-directory cov-report
709-
- name: Upload coverage report artifact
710-
uses: actions/upload-artifact@v4
711-
with:
712-
name: cov-report
713-
path: 'cov-report'
714873
ubuntu-gcc-build-perf-stats:
715874
needs:
716875
- macos-clang-build

0 commit comments

Comments
 (0)