From 24a094b7e651b168fa97a86c3ecc4de9197669eb Mon Sep 17 00:00:00 2001 From: gabime Date: Sat, 2 Nov 2024 10:02:17 +0200 Subject: [PATCH] try matrix for win ci --- .github/workflows/ci.yml | 200 ++++++++++++++++----------------------- 1 file changed, 80 insertions(+), 120 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 71a54653..8f55f77c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,85 +3,85 @@ 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 +# # ----------------------------------------------------------------------- +# # 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 @@ -91,46 +91,6 @@ jobs: strategy: matrix: config: - - GENERATOR: "Visual Studio 16 2019" - ARCH: "-A x64" - BUILD_TYPE: Debug - BUILD_SHARED: 'OFF' - FATAL_ERRORS: 'OFF' - WCHAR: 'ON' - WCHAR_FILES: 'OFF' - BUILD_EXAMPLE: 'ON' - USE_STD_FORMAT: 'OFF' - CXX_STANDARD: 11 - - GENERATOR: "Visual Studio 16 2019" - ARCH: "-A x64" - BUILD_TYPE: Release - BUILD_SHARED: 'OFF' - FATAL_ERRORS: 'OFF' - WCHAR: 'OFF' - WCHAR_FILES: 'OFF' - BUILD_EXAMPLE: 'ON' - USE_STD_FORMAT: 'OFF' - CXX_STANDARD: 11 - - GENERATOR: "Visual Studio 16 2019" - ARCH: "-A x64" - BUILD_TYPE: Release - BUILD_SHARED: 'ON' - FATAL_ERRORS: 'OFF' - WCHAR: 'OFF' - WCHAR_FILES: 'OFF' - BUILD_EXAMPLE: 'ON' - USE_STD_FORMAT: 'OFF' - CXX_STANDARD: 11 - - GENERATOR: "Visual Studio 16 2019" - ARCH: "-A x64" - BUILD_TYPE: Release - BUILD_SHARED: 'ON' - FATAL_ERRORS: 'ON' - WCHAR: 'OFF' - WCHAR_FILES: 'OFF' - BUILD_EXAMPLE: 'OFF' - USE_STD_FORMAT: 'OFF' - CXX_STANDARD: 17 - GENERATOR: "Visual Studio 17 2022" ARCH: "-A x64" BUILD_TYPE: Release @@ -157,7 +117,7 @@ jobs: uses: actions/checkout@v2 - name: Set up CMake - uses: jwlawson/actions-setup-cmake@v1 + uses: jwlawson/actions-setup-cmake@v2 - name: Configure CMake shell: pwsh