1+ # on: [push, pull_request]
2+ # on: [push]
3+
4+ jobs :
5+ build :
6+ runs-on : ubuntu-latest
7+ container :
8+ image : ubuntu:18.04
9+ strategy :
10+ matrix :
11+ configuration : [
12+ { "PACKAGE":"clang-3.9", "COMPILER":"clang", "COMPILER_VER":"3.9", "COMPILER_C": "clang-3.9","COMPILER_CXX": "clang++-3.9","BUILD_TYPE": "Release","CXX_STANDARD": 11 },
13+ { "PACKAGE":"clang-3.9", "COMPILER":"clang", "COMPILER_VER":"3.9", "COMPILER_C": "clang-3.9","COMPILER_CXX": "clang++-3.9","BUILD_TYPE": "Debug","CXX_STANDARD": 11 },
14+ { "PACKAGE":"clang-3.9", "COMPILER":"clang", "COMPILER_VER":"3.9", "COMPILER_C": "clang-3.9","COMPILER_CXX": "clang++-3.9","BUILD_TYPE": "Release","CXX_STANDARD": 14 },
15+ { "PACKAGE":"clang-3.9", "COMPILER":"clang", "COMPILER_VER":"3.9", "COMPILER_C": "clang-3.9","COMPILER_CXX": "clang++-3.9","BUILD_TYPE": "Debug","CXX_STANDARD": 14 },
16+ #{ "PACKAGE":"clang-3.9", "COMPILER":"clang", "COMPILER_VER":"3.9", "COMPILER_C": "clang-3.9","COMPILER_CXX": "clang++-3.9","BUILD_TYPE": "Release","CXX_STANDARD": 17 },
17+ #{ "PACKAGE":"clang-3.9", "COMPILER":"clang", "COMPILER_VER":"3.9", "COMPILER_C": "clang-3.9","COMPILER_CXX": "clang++-3.9","BUILD_TYPE": "Debug","CXX_STANDARD": 17 },
18+ { "PACKAGE":"clang-4.0", "COMPILER":"clang", "COMPILER_VER":"4.0", "COMPILER_C": "clang-4.0","COMPILER_CXX": "clang++-4.0","BUILD_TYPE": "Release","CXX_STANDARD": 11 },
19+ { "PACKAGE":"clang-4.0", "COMPILER":"clang", "COMPILER_VER":"4.0", "COMPILER_C": "clang-4.0","COMPILER_CXX": "clang++-4.0","BUILD_TYPE": "Debug","CXX_STANDARD": 11 },
20+ { "PACKAGE":"clang-4.0", "COMPILER":"clang", "COMPILER_VER":"4.0", "COMPILER_C": "clang-4.0","COMPILER_CXX": "clang++-4.0","BUILD_TYPE": "Release","CXX_STANDARD": 14 },
21+ { "PACKAGE":"clang-4.0", "COMPILER":"clang", "COMPILER_VER":"4.0", "COMPILER_C": "clang-4.0","COMPILER_CXX": "clang++-4.0","BUILD_TYPE": "Debug","CXX_STANDARD": 14 },
22+ #{ "PACKAGE":"clang-4.0", "COMPILER":"clang", "COMPILER_VER":"4.0", "COMPILER_C": "clang-4.0","COMPILER_CXX": "clang++-4.0","BUILD_TYPE": "Release","CXX_STANDARD": 17 },
23+ #{ "PACKAGE":"clang-4.0", "COMPILER":"clang", "COMPILER_VER":"4.0", "COMPILER_C": "clang-4.0","COMPILER_CXX": "clang++-4.0","BUILD_TYPE": "Debug","CXX_STANDARD": 17 },
24+ { "PACKAGE":"clang-5.0", "COMPILER":"clang", "COMPILER_VER":"5.0", "COMPILER_C": "clang-5.0","COMPILER_CXX": "clang++-5.0","BUILD_TYPE": "Release","CXX_STANDARD": 11 },
25+ { "PACKAGE":"clang-5.0", "COMPILER":"clang", "COMPILER_VER":"5.0", "COMPILER_C": "clang-5.0","COMPILER_CXX": "clang++-5.0","BUILD_TYPE": "Debug","CXX_STANDARD": 11 },
26+ { "PACKAGE":"clang-5.0", "COMPILER":"clang", "COMPILER_VER":"5.0", "COMPILER_C": "clang-5.0","COMPILER_CXX": "clang++-5.0","BUILD_TYPE": "Release","CXX_STANDARD": 14 },
27+ { "PACKAGE":"clang-5.0", "COMPILER":"clang", "COMPILER_VER":"5.0", "COMPILER_C": "clang-5.0","COMPILER_CXX": "clang++-5.0","BUILD_TYPE": "Debug","CXX_STANDARD": 14 },
28+ { "PACKAGE":"clang-5.0", "COMPILER":"clang", "COMPILER_VER":"5.0", "COMPILER_C": "clang-5.0","COMPILER_CXX": "clang++-5.0","BUILD_TYPE": "Release","CXX_STANDARD": 17 },
29+ { "PACKAGE":"clang-5.0", "COMPILER":"clang", "COMPILER_VER":"5.0", "COMPILER_C": "clang-5.0","COMPILER_CXX": "clang++-5.0","BUILD_TYPE": "Debug","CXX_STANDARD": 17 },
30+ { "PACKAGE":"clang-6.0", "COMPILER":"clang", "COMPILER_VER":"6.0", "COMPILER_C": "clang-6.0","COMPILER_CXX": "clang++-6.0","BUILD_TYPE": "Release","CXX_STANDARD": 11 },
31+ { "PACKAGE":"clang-6.0", "COMPILER":"clang", "COMPILER_VER":"6.0", "COMPILER_C": "clang-6.0","COMPILER_CXX": "clang++-6.0","BUILD_TYPE": "Debug","CXX_STANDARD": 11 },
32+ { "PACKAGE":"clang-6.0", "COMPILER":"clang", "COMPILER_VER":"6.0", "COMPILER_C": "clang-6.0","COMPILER_CXX": "clang++-6.0","BUILD_TYPE": "Release","CXX_STANDARD": 14 },
33+ { "PACKAGE":"clang-6.0", "COMPILER":"clang", "COMPILER_VER":"6.0", "COMPILER_C": "clang-6.0","COMPILER_CXX": "clang++-6.0","BUILD_TYPE": "Debug","CXX_STANDARD": 14 },
34+ { "PACKAGE":"clang-6.0", "COMPILER":"clang", "COMPILER_VER":"6.0", "COMPILER_C": "clang-6.0","COMPILER_CXX": "clang++-6.0","BUILD_TYPE": "Release","CXX_STANDARD": 17 },
35+ { "PACKAGE":"clang-6.0", "COMPILER":"clang", "COMPILER_VER":"6.0", "COMPILER_C": "clang-6.0","COMPILER_CXX": "clang++-6.0","BUILD_TYPE": "Debug","CXX_STANDARD": 17 },
36+ { "PACKAGE":"clang-7", "COMPILER":"clang", "COMPILER_VER":"7.0", "COMPILER_C": "clang-7","COMPILER_CXX": "clang++-7","BUILD_TYPE": "Release","CXX_STANDARD": 11 },
37+ { "PACKAGE":"clang-7", "COMPILER":"clang", "COMPILER_VER":"7.0", "COMPILER_C": "clang-7","COMPILER_CXX": "clang++-7","BUILD_TYPE": "Debug","CXX_STANDARD": 11 },
38+ { "PACKAGE":"clang-7", "COMPILER":"clang", "COMPILER_VER":"7.0", "COMPILER_C": "clang-7","COMPILER_CXX": "clang++-7","BUILD_TYPE": "Release","CXX_STANDARD": 14 },
39+ { "PACKAGE":"clang-7", "COMPILER":"clang", "COMPILER_VER":"7.0", "COMPILER_C": "clang-7","COMPILER_CXX": "clang++-7","BUILD_TYPE": "Debug","CXX_STANDARD": 14 },
40+ { "PACKAGE":"clang-7", "COMPILER":"clang", "COMPILER_VER":"7.0", "COMPILER_C": "clang-7","COMPILER_CXX": "clang++-7","BUILD_TYPE": "Release","CXX_STANDARD": 17 },
41+ { "PACKAGE":"clang-7", "COMPILER":"clang", "COMPILER_VER":"7.0", "COMPILER_C": "clang-7","COMPILER_CXX": "clang++-7","BUILD_TYPE": "Debug","CXX_STANDARD": 17 },
42+ { "PACKAGE":"clang-8", "COMPILER":"clang", "COMPILER_VER":"8", "COMPILER_C": "clang-8","COMPILER_CXX": "clang++-8","BUILD_TYPE": "Release","CXX_STANDARD": 11 },
43+ { "PACKAGE":"clang-8", "COMPILER":"clang", "COMPILER_VER":"8", "COMPILER_C": "clang-8","COMPILER_CXX": "clang++-8","BUILD_TYPE": "Debug","CXX_STANDARD": 11 },
44+ { "PACKAGE":"clang-8", "COMPILER":"clang", "COMPILER_VER":"8", "COMPILER_C": "clang-8","COMPILER_CXX": "clang++-8","BUILD_TYPE": "Release","CXX_STANDARD": 14 },
45+ { "PACKAGE":"clang-8", "COMPILER":"clang", "COMPILER_VER":"8", "COMPILER_C": "clang-8","COMPILER_CXX": "clang++-8","BUILD_TYPE": "Debug","CXX_STANDARD": 14 },
46+ { "PACKAGE":"clang-8", "COMPILER":"clang", "COMPILER_VER":"8", "COMPILER_C": "clang-8","COMPILER_CXX": "clang++-8","BUILD_TYPE": "Release","CXX_STANDARD": 17 },
47+ { "PACKAGE":"clang-8", "COMPILER":"clang", "COMPILER_VER":"8", "COMPILER_C": "clang-8","COMPILER_CXX": "clang++-8","BUILD_TYPE": "Debug","CXX_STANDARD": 17 },
48+ { "PACKAGE":"clang-9", "COMPILER":"clang", "COMPILER_VER":"9", "COMPILER_C": "clang-9","COMPILER_CXX": "clang++-9","BUILD_TYPE": "Release","CXX_STANDARD": 11 },
49+ { "PACKAGE":"clang-9", "COMPILER":"clang", "COMPILER_VER":"9", "COMPILER_C": "clang-9","COMPILER_CXX": "clang++-9","BUILD_TYPE": "Debug","CXX_STANDARD": 11 },
50+ { "PACKAGE":"clang-9", "COMPILER":"clang", "COMPILER_VER":"9", "COMPILER_C": "clang-9","COMPILER_CXX": "clang++-9","BUILD_TYPE": "Release","CXX_STANDARD": 14 },
51+ { "PACKAGE":"clang-9", "COMPILER":"clang", "COMPILER_VER":"9", "COMPILER_C": "clang-9","COMPILER_CXX": "clang++-9","BUILD_TYPE": "Debug","CXX_STANDARD": 14 },
52+ { "PACKAGE":"clang-9", "COMPILER":"clang", "COMPILER_VER":"9", "COMPILER_C": "clang-9","COMPILER_CXX": "clang++-9","BUILD_TYPE": "Release","CXX_STANDARD": 17 },
53+ { "PACKAGE":"clang-9", "COMPILER":"clang", "COMPILER_VER":"9", "COMPILER_C": "clang-9","COMPILER_CXX": "clang++-9","BUILD_TYPE": "Debug","CXX_STANDARD": 17 },
54+ { "PACKAGE":"clang-10", "COMPILER":"clang", "COMPILER_VER":"10", "COMPILER_C": "clang-10","COMPILER_CXX": "clang++-10","BUILD_TYPE": "Release","CXX_STANDARD": 11 , "cmake_params": "-DRTTI_DISABLE=OFF" },
55+ { "PACKAGE":"clang-10", "COMPILER":"clang", "COMPILER_VER":"10", "COMPILER_C": "clang-10","COMPILER_CXX": "clang++-10","BUILD_TYPE": "Debug","CXX_STANDARD": 11 , "cmake_params": "-DRTTI_DISABLE=OFF" },
56+ { "PACKAGE":"clang-10", "COMPILER":"clang", "COMPILER_VER":"10", "COMPILER_C": "clang-10","COMPILER_CXX": "clang++-10","BUILD_TYPE": "Release","CXX_STANDARD": 14 , "cmake_params": "-DRTTI_DISABLE=OFF" },
57+ { "PACKAGE":"clang-10", "COMPILER":"clang", "COMPILER_VER":"10", "COMPILER_C": "clang-10","COMPILER_CXX": "clang++-10","BUILD_TYPE": "Debug","CXX_STANDARD": 14 , "cmake_params": "-DRTTI_DISABLE=OFF" },
58+ { "PACKAGE":"clang-10", "COMPILER":"clang", "COMPILER_VER":"10", "COMPILER_C": "clang-10","COMPILER_CXX": "clang++-10","BUILD_TYPE": "Release","CXX_STANDARD": 17 , "cmake_params": "-DRTTI_DISABLE=OFF" },
59+ { "PACKAGE":"clang-10", "COMPILER":"clang", "COMPILER_VER":"10", "COMPILER_C": "clang-10","COMPILER_CXX": "clang++-10","BUILD_TYPE": "Debug","CXX_STANDARD": 17, "cmake_params": "-DRTTI_DISABLE=OFF" },
60+ #{ "PACKAGE":"clang-11", "COMPILER":"clang", "COMPILER_VER":"11", "COMPILER_C": "clang-11","COMPILER_CXX": "clang++-11","BUILD_TYPE": "Release","CXX_STANDARD": 11 },
61+ #{ "PACKAGE":"clang-11", "COMPILER":"clang", "COMPILER_VER":"11", "COMPILER_C": "clang-11","COMPILER_CXX": "clang++-11","BUILD_TYPE": "Debug","CXX_STANDARD": 11 },
62+ #{ "PACKAGE":"clang-11", "COMPILER":"clang", "COMPILER_VER":"11", "COMPILER_C": "clang-11","COMPILER_CXX": "clang++-11","BUILD_TYPE": "Release","CXX_STANDARD": 14 },
63+ #{ "PACKAGE":"clang-11", "COMPILER":"clang", "COMPILER_VER":"11", "COMPILER_C": "clang-11","COMPILER_CXX": "clang++-11","BUILD_TYPE": "Debug","CXX_STANDARD": 14 },
64+ #{ "PACKAGE":"clang-11", "COMPILER":"clang", "COMPILER_VER":"11", "COMPILER_C": "clang-11","COMPILER_CXX": "clang++-11","BUILD_TYPE": "Release","CXX_STANDARD": 17 },
65+ #{ "PACKAGE":"clang-11", "COMPILER":"clang", "COMPILER_VER":"11", "COMPILER_C": "clang-11","COMPILER_CXX": "clang++-11","BUILD_TYPE": "Debug","CXX_STANDARD": 17 },
66+ #{ "PACKAGE":"clang-12", "COMPILER":"clang", "COMPILER_VER":"12", "COMPILER_C": "clang-12","COMPILER_CXX": "clang++-12","BUILD_TYPE": "Release","CXX_STANDARD": 11 },
67+ #{ "PACKAGE":"clang-12", "COMPILER":"clang", "COMPILER_VER":"12", "COMPILER_C": "clang-12","COMPILER_CXX": "clang++-12","BUILD_TYPE": "Debug","CXX_STANDARD": 11 },
68+ #{ "PACKAGE":"clang-12", "COMPILER":"clang", "COMPILER_VER":"12", "COMPILER_C": "clang-12","COMPILER_CXX": "clang++-12","BUILD_TYPE": "Release","CXX_STANDARD": 14 },
69+ #{ "PACKAGE":"clang-12", "COMPILER":"clang", "COMPILER_VER":"12", "COMPILER_C": "clang-12","COMPILER_CXX": "clang++-12","BUILD_TYPE": "Debug","CXX_STANDARD": 14 },
70+ #{ "PACKAGE":"clang-12", "COMPILER":"clang", "COMPILER_VER":"12", "COMPILER_C": "clang-12","COMPILER_CXX": "clang++-12","BUILD_TYPE": "Release","CXX_STANDARD": 17 },
71+ #{ "PACKAGE":"clang-12", "COMPILER":"clang", "COMPILER_VER":"12", "COMPILER_C": "clang-12","COMPILER_CXX": "clang++-12","BUILD_TYPE": "Debug","CXX_STANDARD": 17 },
72+
73+ ]
74+
75+ steps :
76+ - uses : actions/checkout@v2
77+
78+ - name : Install system dependencies
79+ run : |
80+ apt-get update
81+ apt-get install -y software-properties-common ninja-build python3-pip python3 python3-dev python3-setuptools wget
82+ add-apt-repository ppa:ubuntu-toolchain-r/test
83+ pip3 install --upgrade pip
84+ pip3 install --no-cache-dir conan==1.59 cmake
85+
86+ - name : Install compiler
87+ run : |
88+ bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
89+ apt-get install -y ${{ matrix.configuration.PACKAGE}}
90+
91+ - name : Install conan dependencies
92+ run : |
93+ conan profile new default --detect
94+ conan profile update settings.compiler=${{ matrix.configuration.COMPILER}} default
95+ conan profile update settings.compiler.version=${{ matrix.configuration.COMPILER_VER}} default
96+ conan profile update env.CXX=${{ matrix.configuration.COMPILER_CXX}} default
97+ conan profile update env.CC=${{ matrix.configuration.COMPILER_C}} default
98+ #mkdir -p ${{github.workspace}}/build
99+ #conan install ${{github.workspace}}/build/.. -if ${{github.workspace}}/build --build=missing -s build_type=Release
100+ mkdir -p build
101+ conan install conanfile.txt -if build --build=missing -s build_type=Release
102+
103+ - name : Configure CMake
104+ env :
105+ CC : ${{ matrix.configuration.COMPILER_C}}
106+ CXX : ${{ matrix.configuration.COMPILER_CXX}}
107+ run : cmake -B build -GNinja -DCMAKE_BUILD_TYPE=${{ matrix.configuration.BUILD_TYPE}} -DCMAKE_CXX_STANDARD=${{ matrix.configuration.CXX_STANDARD}} ${{ matrix.configuration.cmake_params}} -DALLOW_EXAMPLES=ON -DALLOW_TESTS=ON -DENABLE_TESTS_MEASUREMENTS=OFF -DALLOW_BENCHMARK=ON
108+
109+ - name : Build
110+ run : cmake --build build --config ${{ matrix.configuration.BUILD_TYPE}}
111+
112+ - name : Test
113+ working-directory : ${{github.workspace}}/build
114+ run : ctest -C ${{env.BUILD_TYPE}} --rerun-failed --output-on-failure
115+
0 commit comments