Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gabime/spdlog.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroffa <bm-dev@yandex.com>2022-09-29 21:29:40 +0300
committeroffa <bm-dev@yandex.com>2022-10-01 19:11:36 +0300
commit23fce5ffaabd163317462a36adceb57a839d5139 (patch)
tree21e3528dd3b687ac9f1c5a43b2ed6ccaaf0f0978
parent7fa59cf55509b6bb921df711d12e133ed35b5c75 (diff)
Migrate to Github Actions CI
-rw-r--r--.github/workflows/ci.yml81
-rwxr-xr-xscripts/ci_setup_clang.sh12
2 files changed, 93 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 00000000..23fd4a3c
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,81 @@
+name: ci
+
+on: [push, pull_request]
+
+jobs:
+ build_linux:
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ strategy:
+ matrix:
+ config:
+ - { compiler: gcc, version: 4.9, build_type: Release, cppstd: 11, examples: OFF, asan: OFF }
+ - { 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: 3.5, build_type: Release, cppstd: 11, asan: OFF }
+ - { compiler: clang, version: 10, build_type: Release, cppstd: 11 }
+ - { compiler: clang, version: 10, build_type: Debug, cppstd: 17, asan: OFF }
+ - { 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
+ 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
+
+ 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
+
diff --git a/scripts/ci_setup_clang.sh b/scripts/ci_setup_clang.sh
new file mode 100755
index 00000000..140f9f9d
--- /dev/null
+++ b/scripts/ci_setup_clang.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+set -ex
+
+VERSION=$1
+
+apt-get update
+apt-get install -y libc++-${VERSION}-dev libc++abi-${VERSION}-dev
+
+if [[ "${VERSION}" -ge 12 ]]; then
+ apt-get install -y --no-install-recommends libunwind-${VERSION}-dev
+fi