Skip to content

Ануфриев Даниил. Задача 2. Вариант 12. Топология сети Звезда. #3387

Ануфриев Даниил. Задача 2. Вариант 12. Топология сети Звезда.

Ануфриев Даниил. Задача 2. Вариант 12. Топология сети Звезда. #3387

Workflow file for this run

name: Build application
on:
push:
pull_request:
schedule:
- cron: '0 */4 * * *'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
ubuntu-gcc-build:
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 gcc-13 g++-13
sudo apt-get install cppcheck ninja-build
sudo apt-get install mpich libmpich* mpi* openmpi-bin
sudo apt-get install libomp-dev
sudo apt-get install valgrind
python3 -m pip install xlsxwriter
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}
create-symlink: true
- name: CMake configure
run: >
cmake -S . -B build
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-G Ninja -D USE_CPPCHECK=ON -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: gcc-13
CXX: g++-13
- name: Ninja build
run: |
cmake --build build
env:
CC: gcc-13
CXX: g++-13
- name: Run func tests (num_proc=2)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=2
source scripts/run.sh
- name: Run func tests (num_proc=3)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=3
source scripts/run.sh
- name: Run func tests (num_proc=4)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=4
source scripts/run.sh
ubuntu-clang-build:
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 cppcheck ninja-build
sudo apt-get install mpich libmpich* mpi* openmpi-bin
sudo apt-get install python3-pip
sudo apt-get install valgrind
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 18 all
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}
create-symlink: true
- name: CMake configure
run: >
cmake -S . -B build
-G Ninja -D USE_CPPCHECK=ON -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-18
CXX: clang++-18
- name: Ninja build
run: |
cmake --build build
env:
CC: clang-18
CXX: clang++-18
- name: Run func tests (num_proc=2)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=2
source scripts/run.sh
- name: Run func tests (num_proc=3)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=3
source scripts/run.sh
- name: Run func tests (num_proc=4)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=4
source scripts/run.sh
ubuntu-clang-sanitizer-build:
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 cppcheck ninja-build
sudo apt-get install mpich libmpich* mpi* openmpi-bin
sudo apt-get install python3-pip
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 18 all
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}
create-symlink: true
- name: CMake configure
run: >
cmake -S . -B build
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-G Ninja -D USE_CPPCHECK=ON -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-18
CXX: clang++-18
- name: Ninja build
run: |
cmake --build build
env:
CC: clang-18
CXX: clang++-18
- name: Run tests
run: |
export OMP_NUM_THREADS=4
export ASAN_RUN=1
export PROC_COUNT=4
source scripts/run.sh
macos-clang-build:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup environment
run: |
brew update-reset
brew install cppcheck ninja mpich llvm
brew install libomp
brew link libomp --overwrite --force
brew install openssl
brew link openssl --overwrite --force
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}
create-symlink: true
- name: CMake configure
run: >
cmake -S . -B build
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-G Ninja -D USE_CPPCHECK=ON -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: Ninja build
run: |
cmake --build build
- name: Run tests
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=2
source scripts/run.sh
windows-msvc-build:
runs-on: windows-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Add msbuild to PATH
uses: microsoft/[email protected]
- name: Setup MPI
uses: mpi4py/setup-mpi@v1
with:
mpi: msmpi
- name: Download dependencies
run: |
choco install openssl --execution-timeout 6000
- name: Setup ccache
uses: Chocobo1/setup-ccache-action@v1
with:
windows_compile_environment: msvc
- name: CMake configure
shell: bash
run: >
cmake -S . -B build
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-D USE_CPPCHECK=ON -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
- name: MSBuild
shell: bash
run: |
cmake --build build --config Release --parallel
- name: Run tests
run: |
scripts/run.bat
env:
OMP_NUM_THREADS: 4
windows-clang-build:
runs-on: windows-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Add msbuild to PATH
uses: microsoft/[email protected]
- name: CMake configure
run: >
cmake -S . -B build -A x64 -T ClangCL
-D USE_SEQ=ON -D USE_MPI=OFF -D USE_OMP=OFF -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-cl
CXX: clang-cl
- name: Ninja build
run: |
cmake --build build --config Release --parallel -v
env:
CC: clang-cl
CXX: clang-cl
- name: Run tests
run: |
scripts/run.bat
env:
CLANG_BUILD: 1
OMP_NUM_THREADS: 4
ubuntu-gcc-build-codecov:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup environment
run: |
sudo apt-get update
sudo apt-get install gcc g++
sudo apt-get install cppcheck ninja-build
sudo apt-get install mpich libmpich* mpi* openmpi-bin
sudo apt-get install libomp-dev
sudo apt-get install valgrind
sudo apt-get install gcovr lcov
- 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
-D CMAKE_VERBOSE_MAKEFILE=ON
-D USE_COVERAGE=ON
- name: Ninja build
run: |
cmake --build build --parallel
- name: Run tests
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=4
source scripts/run.sh
- name: Generate gcovr Coverage Data
run: |
cd build
gcovr -r ../ --xml --output ../coverage.xml
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
token: 01474879-5a86-4c59-bd1d-6e29d3ed9550
files: coverage.xml
- name: Generate lcov Coverage Data
run: |
cd build
lcov --capture --directory . --output-file ../coverage.info
lcov --remove ../coverage.info '*/3rdparty/*' '/usr/*' '*/perf_tests/*' '*/func_tests/*' --output-file ../coverage.info
cd ..
genhtml coverage.info --output-directory cov-report
- name: Upload coverage report artifact
uses: actions/upload-artifact@v4
with:
name: cov-report
path: 'cov-report'