Update ci.yml #881
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
name: ci | |
on: [push, pull_request] | |
jobs: | |
# # ----------------------------------------------------------------------- | |
# # Linux build matrix | |
# # ----------------------------------------------------------------------- | |
# build_linux: | |
# runs-on: ubuntu-latest | |
# defaults: | |
# run: | |
# shell: bash | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# config: | |
# - { compiler: gcc, version: 7, build_type: Release, cppstd: 11 } | |
# - { compiler: gcc, version: 9, build_type: Release, cppstd: 17 } | |
# - { compiler: gcc, version: 11, build_type: Debug, cppstd: 20 } | |
# - { compiler: gcc, version: 12, build_type: Release, cppstd: 20 } | |
# - { compiler: clang, version: 12, build_type: Debug, cppstd: 17, asan: OFF } | |
# - { compiler: clang, version: 15, build_type: Release, cppstd: 20, asan: OFF } | |
# container: | |
# image: ${{ matrix.config.compiler == 'clang' && 'teeks99/clang-ubuntu' || matrix.config.compiler }}:${{ matrix.config.version }} | |
# name: "${{ matrix.config.compiler}} ${{ matrix.config.version }} (C++${{ matrix.config.cppstd }}, ${{ matrix.config.build_type }})" | |
# steps: | |
# - uses: actions/checkout@main | |
# - name: Setup | |
# run: | | |
# apt-get update | |
# apt-get install -y curl git pkg-config libsystemd-dev | |
# CMAKE_VERSION="3.24.2" | |
# curl -sSL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.sh -o install-cmake.sh | |
# chmod +x install-cmake.sh | |
# ./install-cmake.sh --prefix=/usr/local --skip-license | |
# - name: Setup Compiler | |
# if: matrix.config.compiler == 'clang' | |
# run: | | |
# if [[ "${{ matrix.config.version }}" -ge 4 ]]; then | |
# scripts/ci_setup_clang.sh "${{ matrix.config.version }}" | |
# echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV | |
# fi | |
# echo "CC=clang-${{ matrix.config.version }}" >> $GITHUB_ENV | |
# echo "CXX=clang++-${{ matrix.config.version }}" >> $GITHUB_ENV | |
# - name: Build | |
# run: | | |
# mkdir -p build && cd build | |
# cmake .. \ | |
# -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ | |
# -DCMAKE_CXX_STANDARD=${{ matrix.config.cppstd }} \ | |
# -DSPDLOG_BUILD_EXAMPLE=${{ matrix.config.examples || 'ON' }} \ | |
# -DSPDLOG_BUILD_EXAMPLE_HO=${{ matrix.config.examples || 'ON' }} \ | |
# -DSPDLOG_BUILD_WARNINGS=ON \ | |
# -DSPDLOG_BUILD_BENCH=OFF \ | |
# -DSPDLOG_BUILD_TESTS=ON \ | |
# -DSPDLOG_BUILD_TESTS_HO=OFF \ | |
# -DSPDLOG_SANITIZE_ADDRESS=${{ matrix.config.asan || 'ON' }} | |
# make -j2 | |
# ctest -j2 --output-on-failure | |
# | |
# # ----------------------------------------------------------------------- | |
# # OS X build matrix | |
# # ----------------------------------------------------------------------- | |
# build_osx: | |
# runs-on: macOS-latest | |
# name: "OS X Clang (C++11, Release)" | |
# steps: | |
# - uses: actions/checkout@main | |
# - name: Build | |
# run: | | |
# mkdir -p build && cd build | |
# cmake .. \ | |
# -DCMAKE_BUILD_TYPE=Release \ | |
# -DCMAKE_CXX_STANDARD=11 \ | |
# -DSPDLOG_BUILD_EXAMPLE=ON \ | |
# -DSPDLOG_BUILD_EXAMPLE_HO=ON \ | |
# -DSPDLOG_BUILD_WARNINGS=ON \ | |
# -DSPDLOG_BUILD_BENCH=OFF \ | |
# -DSPDLOG_BUILD_TESTS=ON \ | |
# -DSPDLOG_BUILD_TESTS_HO=OFF \ | |
# -DSPDLOG_SANITIZE_ADDRESS=OFF | |
# make -j2 | |
# ctest -j2 --output-on-failure | |
# ----------------------------------------------------------------------- | |
# Windows build matrix | |
# ----------------------------------------------------------------------- | |
build_windows: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
config: | |
- GENERATOR: "Visual Studio 17 2022" | |
BUILD_TYPE: Release | |
BUILD_SHARED: 'ON' | |
FATAL_ERRORS: 'ON' | |
WCHAR: 'OFF' | |
WCHAR_FILES: 'OFF' | |
BUILD_EXAMPLE: 'OFF' | |
USE_STD_FORMAT: 'ON' | |
CXX_STANDARD: 20 | |
- GENERATOR: "Visual Studio 17 2022" | |
ARCH: "-A x64" | |
BUILD_TYPE: Release | |
BUILD_SHARED: 'ON' | |
FATAL_ERRORS: 'ON' | |
WCHAR: 'ON' | |
WCHAR_FILES: 'ON' | |
BUILD_EXAMPLE: 'OFF' | |
USE_STD_FORMAT: 'ON' | |
CXX_STANDARD: 20 | |
- GENERATOR: "Visual Studio 17 2022" | |
ARCH: "-A x64" | |
BUILD_TYPE: Release | |
BUILD_SHARED: 'ON' | |
FATAL_ERRORS: 'ON' | |
WCHAR: 'OFF' | |
WCHAR_FILES: 'OFF' | |
BUILD_EXAMPLE: 'ON' | |
USE_STD_FORMAT: 'OFF' | |
CXX_STANDARD: 20 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: CMake ${{ matrix.config.GENERATOR }} CXX=${{matrix.config.CXX_STANDARD}} WCHAR=${{matrix.config.WCHAR_FILES}} STD_FORMAT=${{matrix.config.USE_STD_FORMAT}} | |
shell: pwsh | |
run: | | |
mkdir build | |
cd build | |
cmake -G "${{ matrix.config.GENERATOR }}" -A x64 ` | |
-D CMAKE_BUILD_TYPE=${{ matrix.config.BUILD_TYPE }} ` | |
-D BUILD_SHARED_LIBS=${{ matrix.config.BUILD_SHARED }} ` | |
-D SPDLOG_WCHAR_SUPPORT=${{ matrix.config.WCHAR }} ` | |
-D SPDLOG_WCHAR_FILENAMES=${{ matrix.config.WCHAR_FILES }} ` | |
-D SPDLOG_BUILD_EXAMPLE=${{ matrix.config.BUILD_EXAMPLE }} ` | |
-D SPDLOG_BUILD_EXAMPLE_HO=${{ matrix.config.BUILD_EXAMPLE }} ` | |
-D SPDLOG_BUILD_TESTS=ON ` | |
-D SPDLOG_BUILD_TESTS_HO=OFF ` | |
-D SPDLOG_BUILD_WARNINGS=${{ matrix.config.FATAL_ERRORS }} ` | |
-D SPDLOG_USE_STD_FORMAT=${{ matrix.config.USE_STD_FORMAT }} ` | |
-D CMAKE_CXX_STANDARD=${{ matrix.config.CXX_STANDARD }} .. | |
- name: Build | |
shell: pwsh | |
run: | | |
cd build | |
cmake --build . --parallel --config ${{ matrix.config.BUILD_TYPE }} | |
- name: Run Tests | |
shell: pwsh | |
env: | |
PATH: ${{ env.PATH }};${{ github.workspace }}\build\_deps\catch2-build\src\${{ matrix.config.BUILD_TYPE }};${{ github.workspace }}\build\${{ matrix.config.BUILD_TYPE }} | |
run: | | |
build\tests\${{ matrix.config.BUILD_TYPE }}\spdlog-utests.exe | |