From 1e2a127dbe63cd3a8e5876f26f413d75d7fcdbfa Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Sat, 25 Nov 2023 11:20:28 +0000 Subject: [PATCH] Refactored Github CI workflows --- .github/workflows/clang-c++11.yml | 52 ++++++ .github/workflows/clang-c++14.yml | 52 ++++++ .github/workflows/clang-c++17.yml | 52 ++++++ .github/workflows/clang-c++20.yml | 184 +++++++++++++++++++ .github/workflows/clang.yml | 40 ---- .github/workflows/gcc-c++11.yml | 54 ++++++ .github/workflows/gcc-c++14.yml | 52 ++++++ .github/workflows/gcc-c++17.yml | 52 ++++++ .github/workflows/{gcc.yml => gcc-c++20.yml} | 66 ------- 9 files changed, 498 insertions(+), 106 deletions(-) create mode 100644 .github/workflows/clang-c++11.yml create mode 100644 .github/workflows/clang-c++14.yml create mode 100644 .github/workflows/clang-c++17.yml create mode 100644 .github/workflows/clang-c++20.yml delete mode 100644 .github/workflows/clang.yml create mode 100644 .github/workflows/gcc-c++11.yml create mode 100644 .github/workflows/gcc-c++14.yml create mode 100644 .github/workflows/gcc-c++17.yml rename .github/workflows/{gcc.yml => gcc-c++20.yml} (58%) diff --git a/.github/workflows/clang-c++11.yml b/.github/workflows/clang-c++11.yml new file mode 100644 index 000000000..1ed503178 --- /dev/null +++ b/.github/workflows/clang-c++11.yml @@ -0,0 +1,52 @@ +name: clang-c++11 +on: + push: + branches: [ master, development, pull-request/* ] + pull_request: + branches: [ master, pull-request/* ] + +jobs: + + build-clang-cpp11-linux-stl: + name: Clang C++11 Linux - STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export CC=clang + export CXX=clang++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=11 ./ + clang --version + make + + - name: Run tests + run: ./test/etl_tests + + build-clang-cpp11-linux-no-stl: + name: Clang C++11 Linux - No STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export CC=clang + export CXX=clang++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=11 ./ + clang --version + make + + - name: Run tests + run: ./test/etl_tests \ No newline at end of file diff --git a/.github/workflows/clang-c++14.yml b/.github/workflows/clang-c++14.yml new file mode 100644 index 000000000..a8e26999e --- /dev/null +++ b/.github/workflows/clang-c++14.yml @@ -0,0 +1,52 @@ +name: clang-c++14 +on: + push: + branches: [ master, development, pull-request/* ] + pull_request: + branches: [ master, pull-request/* ] + +jobs: + + build-clang-cpp14-linux-stl: + name: Clang C++14 Linux - STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export CC=clang + export CXX=clang++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=14 ./ + clang --version + make + + - name: Run tests + run: ./test/etl_tests + + build-clang-cpp14-linux-no-stl: + name: Clang C++14 Linux - No STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export CC=clang + export CXX=clang++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=14 ./ + clang --version + make + + - name: Run tests + run: ./test/etl_tests \ No newline at end of file diff --git a/.github/workflows/clang-c++17.yml b/.github/workflows/clang-c++17.yml new file mode 100644 index 000000000..ff00ee599 --- /dev/null +++ b/.github/workflows/clang-c++17.yml @@ -0,0 +1,52 @@ +name: clang-c++17 +on: + push: + branches: [ master, development, pull-request/* ] + pull_request: + branches: [ master, pull-request/* ] + +jobs: + + build-clang-cpp17-linux-stl: + name: Clang C++17 Linux - STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export CC=clang + export CXX=clang++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=17 ./ + clang --version + make + + - name: Run tests + run: ./test/etl_tests + + build-clang-cpp17-linux-no-stl: + name: Clang C++17 Linux - No STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export CC=clang + export CXX=clang++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=17 ./ + clang --version + make + + - name: Run tests + run: ./test/etl_tests \ No newline at end of file diff --git a/.github/workflows/clang-c++20.yml b/.github/workflows/clang-c++20.yml new file mode 100644 index 000000000..ce7eb169c --- /dev/null +++ b/.github/workflows/clang-c++20.yml @@ -0,0 +1,184 @@ +name: clang-c++20 +on: + push: + branches: [ master, development, pull-request/* ] + pull_request: + branches: [ master, pull-request/* ] + +jobs: + + build-clang-cpp20-linux-no-stl: + name: Clang C++20 Linux - No STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + # Temporary fix. See https://github.com/actions/runner-images/issues/8659 + - name: Install newer Clang + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x ./llvm.sh + sudo ./llvm.sh 17 + + - name: Build + run: | + export CC=clang-17 + export CXX=clang++-17 + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=20 ./ + clang-17 --version + make + + - name: Run tests + run: ./test/etl_tests + + build-clang-cpp20-linux-stl-force-cpp03: + name: Clang C++20 Linux - STL - Force C++03 + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + # Temporary fix. See https://github.com/actions/runner-images/issues/8659 + - name: Install newer Clang + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x ./llvm.sh + sudo ./llvm.sh 17 + + - name: Build + run: | + export CC=clang-17 + export CXX=clang-17++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=20 ./ + clang-17 --version + make + + - name: Run tests + run: ./test/etl_tests + + build-clang-cpp20-linux-no-stl-force-cpp03: + name: Clang C++20 Linux - No STL - Force C++03 + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + # Temporary fix. See https://github.com/actions/runner-images/issues/8659 + - name: Install newer Clang + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x ./llvm.sh + sudo ./llvm.sh 17 + + - name: Build + run: | + export CC=clang-17 + export CXX=clang++-17 + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=20 ./ + clang-17 --version + make + + - name: Run tests + run: ./test/etl_tests + + build-clang-cpp20-osx-stl: + name: Clang C++20 OSX - STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-12] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export CC=clang + export CXX=clang++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=20 ./ + clang --version + make + + - name: Run tests + run: ./test/etl_tests + + build-clang-cpp20-osx-no-stl: + name: Clang C++20 OSX - No STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-12] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export CC=clang + export CXX=clang++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=20 ./ + clang --version + make + + - name: Run tests + run: ./test/etl_tests + + build-clang-cpp20-osx-stl-force-cpp03: + name: Clang C++20 OSX - STL - Force C++03 + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-12] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export CC=clang + export CXX=clang++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=20 ./ + clang --version + make + + - name: Run tests + run: ./test/etl_tests + + build-clang-cpp20-osx-no-stl-force-cpp03: + name: Clang C++20 OSX - No STL - Force C++03 + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-12] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export CC=clang + export CXX=clang++ + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + cmake -D BUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=ON -DETL_CXX_STANDARD=20 ./ + clang --version + make + + - name: Run tests + run: ./test/etl_tests + diff --git a/.github/workflows/clang.yml b/.github/workflows/clang.yml deleted file mode 100644 index dd290d6dd..000000000 --- a/.github/workflows/clang.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: clang -on: - push: - branches: [ master, development, pull-request/* ] - pull_request: - branches: [ master, pull-request/* ] - -jobs: - - build-clang-cpp20-linux-stl: - name: Clang C++20 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - # Temporary fix. See https://github.com/actions/runner-images/issues/8659 - - name: Install newer Clang - run: | - wget https://apt.llvm.org/llvm.sh - chmod +x ./llvm.sh - sudo ./llvm.sh 17 - - - name: Build - run: | - export CC=clang-17 - export CXX=clang++-17 - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=20 ./ - clang-17 --version - make - - - name: Run tests - run: ./test/etl_tests - -# - name: Run tests -# run: ./test/etl_tests diff --git a/.github/workflows/gcc-c++11.yml b/.github/workflows/gcc-c++11.yml new file mode 100644 index 000000000..c968886ab --- /dev/null +++ b/.github/workflows/gcc-c++11.yml @@ -0,0 +1,54 @@ +name: gcc +on: + push: + branches: [ master, development, pull-request/* ] + pull_request: + branches: [ master, pull-request/* ] + +jobs: + + build-gcc-cpp11-linux-stl: + name: GCC C++11 Linux - STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + git fetch + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + export CC=gcc + export CXX=g++ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=11 ./ + gcc --version + make + + - name: Run tests + run: ./test/etl_tests + + build-gcc-cpp11-linux-no-stl: + name: GCC C++11 Linux - No STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + git fetch + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + export CC=gcc + export CXX=g++ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=11 ./ + gcc --version + make + + - name: Run tests + run: ./test/etl_tests diff --git a/.github/workflows/gcc-c++14.yml b/.github/workflows/gcc-c++14.yml new file mode 100644 index 000000000..ec0e45c21 --- /dev/null +++ b/.github/workflows/gcc-c++14.yml @@ -0,0 +1,52 @@ +name: gcc +on: + push: + branches: [ master, development, pull-request/* ] + pull_request: + branches: [ master, pull-request/* ] + +jobs: + + build-gcc-cpp14-linux-stl: + name: GCC C++14 Linux - STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + export CC=gcc + export CXX=g++ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=14 ./ + gcc --version + make + + - name: Run tests + run: ./test/etl_tests + + build-gcc-cpp14-linux-no-stl: + name: GCC C++14 Linux - No STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + export CC=gcc + export CXX=g++ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=14 ./ + gcc --version + make + + - name: Run tests + run: ./test/etl_tests \ No newline at end of file diff --git a/.github/workflows/gcc-c++17.yml b/.github/workflows/gcc-c++17.yml new file mode 100644 index 000000000..0d3e25017 --- /dev/null +++ b/.github/workflows/gcc-c++17.yml @@ -0,0 +1,52 @@ +name: gcc +on: + push: + branches: [ master, development, pull-request/* ] + pull_request: + branches: [ master, pull-request/* ] + +jobs: + + build-gcc-cpp17-linux-stl: + name: GCC C++17 Linux - STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + export CC=gcc + export CXX=g++ + cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=17 ./ + gcc --version + make + + - name: Run tests + run: ./test/etl_tests + + build-gcc-cpp17-linux-no-stl: + name: GCC C++17 Linux - No STL + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + + steps: + - uses: actions/checkout@v3 + + - name: Build + run: | + export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 + export CC=gcc + export CXX=g++ + cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=17 ./ + gcc --version + make + + - name: Run tests + run: ./test/etl_tests diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc-c++20.yml similarity index 58% rename from .github/workflows/gcc.yml rename to .github/workflows/gcc-c++20.yml index c9423301c..b9b56d50d 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc-c++20.yml @@ -6,72 +6,6 @@ on: branches: [ master, pull-request/* ] jobs: - build-gcc-cpp11-linux-stl: - name: GCC C++11 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - git fetch - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=11 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests - - build-gcc-cpp14-linux-stl: - name: GCC C++14 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=14 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests - - build-gcc-cpp17-linux-stl: - name: GCC C++17 Linux - STL - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04] - - steps: - - uses: actions/checkout@v3 - - - name: Build - run: | - export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0 - export CC=gcc - export CXX=g++ - cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03=OFF -DETL_CXX_STANDARD=17 ./ - gcc --version - make - - - name: Run tests - run: ./test/etl_tests build-gcc-cpp20-linux-stl: name: GCC C++20 Linux - STL