Шеметов Даниил. Технология SEQ-MPI. Повышение контраста. Вариант 23. #2
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| on: workflow_call:jobs: gcc-build: runs-on: ${{ matrix.os }} container: image: ghcr.io/learning-process/ppc-ubuntu:1.1 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} strategy: matrix: os: ["ubuntu-24.04", "ubuntu-24.04-arm"] build_type: [Release, Debug] steps: - uses: actions/checkout@v5 with: submodules: recursive - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: key: ${{ runner.os }}-gcc create-symlink: true max-size: 1G - name: CMake configure run: > cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX=install env: CC: gcc-14 CXX: g++-14 - name: Archive revert list uses: actions/upload-artifact@v4 if: ${{ matrix.os == 'ubuntu-24.04' && matrix.build_type == 'Release' }} with: name: revert-list path: build/revert-list.txt - name: Build project run: | cmake --build build --parallel -- --quiet env: CC: gcc-14 CXX: g++-14 - name: Install project run: | cmake --build build --target install -- --quiet - name: Archive installed package uses: ./.github/actions/archive-install with: path: install name: ${{ matrix.build_type == 'Debug' && format('ubuntu-gcc-debug-install-{0}', matrix.os) || format('ubuntu-gcc-install-{0}', matrix.os) }} - name: Show ccache stats run: ccache --show-stats gcc-test: needs: - gcc-build runs-on: ${{ matrix.os }} container: image: ghcr.io/learning-process/ppc-ubuntu:1.1 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} strategy: matrix: os: ["ubuntu-24.04", "ubuntu-24.04-arm"] steps: - uses: actions/checkout@v5 - name: Download installed package uses: actions/download-artifact@v5 with: name: ubuntu-gcc-install-${{ matrix.os }} - name: Extract installed package run: | mkdir -p install tar -xzvf ubuntu-gcc-install-${{ matrix.os }}.tar.gz -C install - name: Run func tests (MPI) run: scripts/run_tests.py --running-type="processes" --counts 1 2 3 4 --additional-mpi-args="--oversubscribe" env: PPC_NUM_THREADS: 1 OMPI_ALLOW_RUN_AS_ROOT: 1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 - name: Run func tests (threads) run: scripts/run_tests.py --running-type="threads" --counts 1 2 3 4 env: PPC_NUM_PROC: 1 gcc-test-extended: needs: - gcc-test runs-on: ${{ matrix.os }} container: image: ghcr.io/learning-process/ppc-ubuntu:1.1 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} strategy: matrix: os: ["ubuntu-24.04", "ubuntu-24.04-arm"] steps: - uses: actions/checkout@v5 - name: Download installed package uses: actions/download-artifact@v5 with: name: ubuntu-gcc-install-${{ matrix.os }} - name: Extract installed package run: | mkdir -p install tar -xzvf ubuntu-gcc-install-${{ matrix.os }}.tar.gz -C install - name: Run func tests (threads extended) run: scripts/run_tests.py --running-type="threads" --counts 5 7 11 13 env: PPC_NUM_PROC: 1 clang-build: runs-on: ${{ matrix.os }} container: image: ghcr.io/learning-process/ppc-ubuntu:1.1 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} strategy: matrix: os: ["ubuntu-24.04", "ubuntu-24.04-arm"] steps: - uses: actions/checkout@v5 with: submodules: recursive - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: key: ${{ runner.os }}-clang create-symlink: true max-size: 1G - name: CMake configure run: > cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=install env: CC: clang-21 CXX: clang++-21 - name: Build project run: | cmake --build build --parallel -- --quiet env: CC: clang-21 CXX: clang++-21 - name: Install project run: | cmake --build build --target install -- --quiet - name: Archive installed package uses: ./.github/actions/archive-install with: path: install name: ubuntu-clang-install-${{ matrix.os }} - name: Show ccache stats run: ccache --show-stats clang-test: needs: - clang-build runs-on: ${{ matrix.os }} container: image: ghcr.io/learning-process/ppc-ubuntu:1.1 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} strategy: matrix: os: ["ubuntu-24.04", "ubuntu-24.04-arm"] steps: - uses: actions/checkout@v5 - name: Download installed package uses: actions/download-artifact@v5 with: name: ubuntu-clang-install-${{ matrix.os }} - name: Extract installed package run: | mkdir -p install tar -xzvf ubuntu-clang-install-${{ matrix.os }}.tar.gz -C install - name: Run func tests (MPI) run: scripts/run_tests.py --running-type="processes" --counts 1 2 3 4 --additional-mpi-args="--oversubscribe" env: PPC_NUM_THREADS: 1 OMPI_ALLOW_RUN_AS_ROOT: 1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 - name: Run tests (threads) run: scripts/run_tests.py --running-type="threads" --counts 1 2 3 4 env: PPC_NUM_PROC: 1 clang-test-extended: needs: - clang-test runs-on: ${{ matrix.os }} container: image: ghcr.io/learning-process/ppc-ubuntu:1.1 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} strategy: matrix: os: ["ubuntu-24.04", "ubuntu-24.04-arm"] steps: - uses: actions/checkout@v5 - name: Download installed package uses: actions/download-artifact@v5 with: name: ubuntu-clang-install-${{ matrix.os }} - name: Extract installed package run: | mkdir -p install tar -xzvf ubuntu-clang-install-${{ matrix.os }}.tar.gz -C install - name: Run tests (threads extended) run: scripts/run_tests.py --running-type="threads" --counts 5 7 11 13 env: PPC_NUM_PROC: 1 clang-sanitizer-build: needs: - clang-build runs-on: ${{ matrix.os }} container: image: ghcr.io/learning-process/ppc-ubuntu:1.1 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} strategy: matrix: os: ["ubuntu-24.04"] steps: - uses: actions/checkout@v5 with: submodules: recursive - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: key: ${{ runner.os }}-clang create-symlink: true max-size: 1G - name: CMake configure run: > cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=RelWithDebInfo -D ENABLE_ADDRESS_SANITIZER=ON -D ENABLE_UB_SANITIZER=ON -D ENABLE_LEAK_SANITIZER=ON -D CMAKE_INSTALL_PREFIX=install env: CC: clang-21 CXX: clang++-21 - name: Build project run: | cmake --build build --parallel -- --quiet env: CC: clang-21 CXX: clang++-21 - name: Install project run: | cmake --build build --target install -- --quiet - name: Archive installed package uses: ./.github/actions/archive-install with: path: install name: ubuntu-clang-sanitizer-install-${{ matrix.os }} - name: Show ccache stats run: ccache --show-stats clang-sanitizer-test: needs: - clang-sanitizer-build runs-on: ${{ matrix.os }} container: image: ghcr.io/learning-process/ppc-ubuntu:1.1 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} strategy: matrix: os: ["ubuntu-24.04"] steps: - uses: actions/checkout@v5 - name: Download installed package uses: actions/download-artifact@v5 with: name: ubuntu-clang-sanitizer-install-${{ matrix.os }} - name: Extract installed package run: | mkdir -p install tar -xzvf ubuntu-clang-sanitizer-install-${{ matrix.os }}.tar.gz -C install - name: Run tests (MPI) run: scripts/run_tests.py --running-type="processes" --counts 2 --additional-mpi-args="--oversubscribe" env: PPC_NUM_THREADS: 2 PPC_ASAN_RUN: 1 ASAN_OPTIONS: abort_on_error=1 UBSAN_OPTIONS: halt_on_error=1 OMPI_ALLOW_RUN_AS_ROOT: 1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 - name: Run tests (threads) run: scripts/run_tests.py --running-type="threads" --counts 1 2 3 4 env: PPC_NUM_PROC: 1 PPC_ASAN_RUN: 1 ASAN_OPTIONS: abort_on_error=1 UBSAN_OPTIONS: halt_on_error=1 clang-sanitizer-test-extended: needs: - clang-sanitizer-test runs-on: ${{ matrix.os }} container: image: ghcr.io/learning-process/ppc-ubuntu:1.1 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} strategy: matrix: os: ["ubuntu-24.04"] steps: - uses: actions/checkout@v5 - name: Download installed package uses: actions/download-artifact@v5 with: name: ubuntu-clang-sanitizer-install-${{ matrix.os }} - name: Extract installed package run: | mkdir -p install tar -xzvf ubuntu-clang-sanitizer-install-${{ matrix.os }}.tar.gz -C install - name: Run tests (threads extended) run: scripts/run_tests.py --running-type="threads" --counts 5 7 11 13 env: PPC_NUM_PROC: 1 PPC_ASAN_RUN: 1 gcc-build-codecov: needs: - gcc-test-extended - clang-test-extended runs-on: ubuntu-24.04 container: image: ghcr.io/learning-process/ppc-ubuntu:1.1 credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v5 with: submodules: recursive - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: key: ${{ runner.os }}-gcc create-symlink: true max-size: 1G - name: CMake configure run: > cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_VERBOSE_MAKEFILE=ON -D USE_COVERAGE=ON - name: Build project run: | cmake --build build --parallel -- --quiet - name: Run tests (MPI) run: scripts/run_tests.py --running-type="processes" --additional-mpi-args="--oversubscribe" env: PPC_NUM_PROC: 2 PPC_NUM_THREADS: 2 OMPI_ALLOW_RUN_AS_ROOT: 1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 - name: Run tests (threads) run: scripts/run_tests.py --running-type="threads" --counts 1 2 3 4 env: PPC_NUM_PROC: 1 - name: Generate gcovr Coverage Data run: | mkdir cov-report cd build gcovr --gcov-executable `which gcov-14` \ -r ../ \ --exclude '.*3rdparty/.*' \ --exclude '/usr/.*' \ --exclude '.*tasks/.*/tests/.*' \ --exclude '.*modules/.*/tests/.*' \ --exclude '.*tasks/common/runners/.*' \ --exclude '.*modules/runners/.*' \ --exclude '.*modules/util/include/perf_test_util.hpp' \ --exclude '.*modules/util/include/func_test_util.hpp' \ --exclude '.*modules/util/src/func_test_util.cpp' \ --xml --output ../coverage.xml \ --html=../cov-report/index.html --html-details - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v5.5.1 with: files: coverage.xml token: ${{ secrets.CODECOV_TOKEN }} - name: Upload coverage report artifact id: upload-cov uses: actions/upload-artifact@v4 with: name: cov-report path: 'cov-report' - name: Comment coverage report link # TODO: Support PRs from forks and handle cases with insufficient write permissions continue-on-error: true uses: peter-evans/create-or-update-comment@v5 with: token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.pull_request.number }} body: | Coverage report is available for download [here](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) - name: Show ccache stats run: ccache --show-stats | ||