Update big_int.hpp #2
This file contains 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
# Copyright (c) the Dviglo project | |
# Copyright (c) 2008-2023 the Urho3D project | |
# License: MIT | |
name: CI/CD | |
on: | |
push: | |
pull_request: | |
jobs: | |
Windows: | |
# Job будет запущен на виртуальной машине с новейшей версией Windows | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on | |
# https://github.com/actions/runner-images | |
runs-on: windows-latest | |
# Используем матрицу для параллельной сборки разных билдов | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategy | |
strategy: | |
fail-fast: false | |
matrix: | |
COMPILER: [vs, mingw] | |
BUILD_TYPE: [debug, release] | |
# Отображаемое имя job | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idname | |
name: 🔲-${{ matrix.COMPILER }}-${{ matrix.BUILD_TYPE }} | |
steps: | |
# Используем MSYS2 вместо устаревшего MinGW | |
# https://github.com/urho3d/urho3D/issues/2887 | |
- name: Устанавливаем MinGW | |
if: matrix.COMPILER == 'mingw' | |
# https://www.msys2.org/docs/ci/ | |
# https://github.com/msys2/setup-msys2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
update: true | |
install: mingw-w64-x86_64-toolchain | |
- name: Добавляем в PATH путь к MinGW | |
if: matrix.COMPILER == 'mingw' | |
shell: bash | |
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path | |
run: echo "${RUNNER_TEMP}/msys64/mingw64/bin" >> $GITHUB_PATH | |
- name: Скачиваем репозиторий | |
# https://github.com/actions/checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
path: repo # Папка, в которую будет скачан репозиторий | |
- name: Генерируем проекты | |
shell: bash | |
run: | | |
ARGS=(repo -B build) # Массив аргументов | |
if [ "${{ matrix.COMPILER }}" == "vs" ] | |
then | |
ARGS+=(-G "Visual Studio 17 2022") | |
else | |
ARGS+=(-G "MinGW Makefiles") | |
# Для MinGW тип сбоки задаётся при генерации проектов | |
ARGS+=(-D CMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }}) | |
fi | |
ARGS+=(-D DV_CTEST=1) | |
cmake "${ARGS[@]}" | |
- name: Компилируем | |
shell: bash | |
run: | | |
ARGS=(--build build) # Массив аргументов | |
if [ "${{ matrix.COMPILER }}" == "vs" ] | |
then | |
# Для Visual Studio тип сбоки задаётся при компиляции проектов | |
ARGS+=(--config ${{ matrix.BUILD_TYPE }}) | |
fi | |
cmake "${ARGS[@]}" | |
- name: CTest | |
shell: bash {0} # Разрешаем перехват ошибок | |
run: | | |
ARGS=(--test-dir build --timeout 60) # Массив аргументов | |
if [ "${{ matrix.COMPILER }}" == "vs" ] | |
then | |
# Для Visual Studio нужно указывать тип сборки (конфигурацию) | |
ARGS+=(-C ${{ matrix.BUILD_TYPE }}) | |
fi | |
ctest "${ARGS[@]}" | |
EXIT_CODE=$? # Код возврата предыдущей команды | |
if (( $EXIT_CODE != 0 )) | |
then | |
echo "$(cat D:/a/mini_games/mini_games/build/Testing/Temporary/LastTest.log)" # Показываем содержимое лога | |
exit $EXIT_CODE | |
fi | |
Linux_Native: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
COMPILER: | |
- { | |
ID: gcc, | |
#C: gcc, | |
#CXX: g++, | |
C: gcc-13, # Используем GCC 13, так как 12 не поддерживает std::format | |
CXX: g++-13, | |
} | |
- { | |
ID: clang, | |
#C: clang, | |
#CXX: clang++, | |
C: clang-13, | |
CXX: clang++-13, | |
} | |
BUILD_TYPE: | |
- { | |
ID: dbg, | |
VALUE: Debug, | |
} | |
- { | |
ID: rel, | |
VALUE: Release, | |
} | |
name: 🐧-${{ matrix.COMPILER.ID }}-${{ matrix.BUILD_TYPE.ID }} | |
steps: | |
- name: Скачиваем репозиторий | |
uses: actions/checkout@v4 | |
with: { path: "repo" } | |
- name: Компилируем | |
run: | | |
#set -x # Echo commands | |
echo "Current dir: $PWD" | |
cmake repo -B build -G "Unix Makefiles" \ | |
-D CMAKE_C_COMPILER=${{ matrix.COMPILER.C }} -D CMAKE_CXX_COMPILER=${{ matrix.COMPILER.CXX }} | |
cmake --build build | |
- name: CTest | |
shell: bash {0} # Разрешаем перехват ошибок | |
run: | | |
ctest --test-dir build --timeout 60 | |
EXIT_CODE=$? # Exit code of the previous command | |
if (( $EXIT_CODE != 0 )) | |
then | |
echo "$(cat /home/runner/work/mini_games/mini_games/build/Testing/Temporary/LastTest.log)" | |
exit $EXIT_CODE | |
fi |