From 1a1a5bfceeb2fe021ce8e805cd90993d15bd0553 Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 08:40:08 +0100 Subject: [PATCH 01/12] Back to ubuntu container --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ffdc95fb..bea4231a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DSKIP_PERFORMANCE_COMPARISON=ON' COMPILER: 'g++-4.7' EXTRA_APT_PACKAGES: 'g++-4.7' - CONTAINER: gcc:4.7 + CONTAINER: ubuntu:16.04 NAME: ubuntu-16.04-g++4.7 # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DSKIP_PERFORMANCE_COMPARISON=ON' From 520aae1d9c6faf60976f37b69c5d1b64fe1b47fd Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 09:14:21 +0100 Subject: [PATCH 02/12] Use docker run action --- .github/workflows/ci.yml | 142 ++++++++++++++++++++------------------- 1 file changed, 72 insertions(+), 70 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bea4231a..ea13fc4f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,7 +4,6 @@ on: [push, pull_request] jobs: test_cereal_linux: runs-on: ubuntu-latest - container: ${{ matrix.CONTAINER }} strategy: fail-fast: false matrix: @@ -164,75 +163,78 @@ jobs: name: ${{ matrix.name }} steps: - - name: Checkout code + - name: Check out the repo uses: actions/checkout@v4 - - name: install deps and test - shell: bash - env: - CMAKE_OPTIONS: ${{ matrix.CMAKE_OPTIONS }} - COMPILER: ${{ matrix.COMPILER }} - EXTRA_APT_PACKAGES: ${{ matrix.EXTRA_APT_PACKAGES }} - LLVM_APT_SOURCE: ${{ matrix.LLVM_APT_SOURCE }} - run: | - set -ex - apt-get update -y - DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles apt-get install -y software-properties-common wget python3-pip make apt-transport-https - - # Add apt repositories for older Ubuntu - . /etc/os-release - if [[ "${VERSION_ID}" == "16.04" ]]; then - add-apt-repository ppa:ubuntu-toolchain-r/test -y - add-apt-repository ppa:mhier/libboost-latest -y - fi - - if [[ "${LLVM_APT_SOURCE}" != "" ]]; then - wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - - add-apt-repository "${LLVM_APT_SOURCE}" - fi - - apt-get update -y - - # Install apt packages - apt-get install libboost-serialization-dev libboost-dev ${EXTRA_APT_PACKAGES} -y - pip3 install cmake - - # Set compiler and env variables - export CXX=${COMPILER} - ${CXX} --version - DEPS_DIR="${PWD}/deps" - mkdir -p "${DEPS_DIR}" - pushd "${DEPS_DIR}" - JOBS=2 - - # Install the right version of libc++ - LLVM_INSTALL=${DEPS_DIR}/llvm/install - # if in linux and compiler clang and llvm not installed - if [[ "${CXX}" == "clang"* && -n "$(ls -A ${LLVM_INSTALL})" ]]; then - if [[ "${CXX}" == "clang++-3.6" ]]; then LLVM_VERSION="3.6.2"; - elif [[ "${CXX}" == "clang++-3.7" ]]; then LLVM_VERSION="3.7.1"; - elif [[ "${CXX}" == "clang++-3.8" ]]; then LLVM_VERSION="3.8.1"; - elif [[ "${CXX}" == "clang++-3.9" ]]; then LLVM_VERSION="3.9.1"; + uses: addnab/docker-run-action@v3 + with: + image: ${{ matrix.CONTAINER }} + options: -v ${{ github.workspace }}:/var/workspace + shell: bash + env: + CMAKE_OPTIONS: ${{ matrix.CMAKE_OPTIONS }} + COMPILER: ${{ matrix.COMPILER }} + EXTRA_APT_PACKAGES: ${{ matrix.EXTRA_APT_PACKAGES }} + LLVM_APT_SOURCE: ${{ matrix.LLVM_APT_SOURCE }} + run: | + set -ex + apt-get update -y + DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles apt-get install -y software-properties-common wget python3-pip make apt-transport-https + + # Add apt repositories for older Ubuntu + . /etc/os-release + if [[ "${VERSION_ID}" == "16.04" ]]; then + add-apt-repository ppa:ubuntu-toolchain-r/test -y + add-apt-repository ppa:mhier/libboost-latest -y + fi + + if [[ "${LLVM_APT_SOURCE}" != "" ]]; then + wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - + add-apt-repository "${LLVM_APT_SOURCE}" fi - LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz" - LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz" - LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz" - mkdir -p llvm llvm/build llvm/projects/libcxx llvm/projects/libcxxabi - wget -O - ${LLVM_URL} | tar --strip-components=1 -xJ -C llvm - wget -O - ${LIBCXX_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxx - wget -O - ${LIBCXXABI_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxxabi - (cd llvm/build && cmake .. -DCMAKE_INSTALL_PREFIX=${LLVM_INSTALL}) - (cd llvm/build/projects/libcxx && make install -j2) - (cd llvm/build/projects/libcxxabi && make install -j2) - export CXXFLAGS="-isystem ${LLVM_INSTALL}/include/c++/v1" - export LDFLAGS="-L ${LLVM_INSTALL}/lib -l c++ -l c++abi" - export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${LLVM_INSTALL}/lib" - fi - - popd - - # Build cereal and test - cmake --version - mkdir build && cd build - cmake ${CMAKE_OPTIONS} .. && make -j4 VERBOSE=1 - ctest . --output-on-failure + + apt-get update -y + + # Install apt packages + apt-get install libboost-serialization-dev libboost-dev ${EXTRA_APT_PACKAGES} -y + pip3 install cmake + + # Set compiler and env variables + export CXX=${COMPILER} + ${CXX} --version + DEPS_DIR="${PWD}/deps" + mkdir -p "${DEPS_DIR}" + pushd "${DEPS_DIR}" + JOBS=2 + + # Install the right version of libc++ + LLVM_INSTALL=${DEPS_DIR}/llvm/install + # if in linux and compiler clang and llvm not installed + if [[ "${CXX}" == "clang"* && -n "$(ls -A ${LLVM_INSTALL})" ]]; then + if [[ "${CXX}" == "clang++-3.6" ]]; then LLVM_VERSION="3.6.2"; + elif [[ "${CXX}" == "clang++-3.7" ]]; then LLVM_VERSION="3.7.1"; + elif [[ "${CXX}" == "clang++-3.8" ]]; then LLVM_VERSION="3.8.1"; + elif [[ "${CXX}" == "clang++-3.9" ]]; then LLVM_VERSION="3.9.1"; + fi + LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz" + LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz" + LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz" + mkdir -p llvm llvm/build llvm/projects/libcxx llvm/projects/libcxxabi + wget -O - ${LLVM_URL} | tar --strip-components=1 -xJ -C llvm + wget -O - ${LIBCXX_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxx + wget -O - ${LIBCXXABI_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxxabi + (cd llvm/build && cmake .. -DCMAKE_INSTALL_PREFIX=${LLVM_INSTALL}) + (cd llvm/build/projects/libcxx && make install -j2) + (cd llvm/build/projects/libcxxabi && make install -j2) + export CXXFLAGS="-isystem ${LLVM_INSTALL}/include/c++/v1" + export LDFLAGS="-L ${LLVM_INSTALL}/lib -l c++ -l c++abi" + export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${LLVM_INSTALL}/lib" + fi + + popd + + # Build cereal and test + cmake --version + mkdir build && cd build + cmake ${CMAKE_OPTIONS} .. && make -j4 VERBOSE=1 + ctest . --output-on-failure From eb39df62f8d422ac0102afa4719f1e1262c92ab4 Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 09:18:32 +0100 Subject: [PATCH 03/12] Remove env section --- .github/workflows/ci.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ea13fc4f..f93d8502 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -171,11 +171,11 @@ jobs: image: ${{ matrix.CONTAINER }} options: -v ${{ github.workspace }}:/var/workspace shell: bash - env: - CMAKE_OPTIONS: ${{ matrix.CMAKE_OPTIONS }} - COMPILER: ${{ matrix.COMPILER }} - EXTRA_APT_PACKAGES: ${{ matrix.EXTRA_APT_PACKAGES }} - LLVM_APT_SOURCE: ${{ matrix.LLVM_APT_SOURCE }} + # env: + # CMAKE_OPTIONS: ${{ matrix.CMAKE_OPTIONS }} + # COMPILER: ${{ matrix.COMPILER }} + # EXTRA_APT_PACKAGES: ${{ matrix.EXTRA_APT_PACKAGES }} + # LLVM_APT_SOURCE: ${{ matrix.LLVM_APT_SOURCE }} run: | set -ex apt-get update -y @@ -188,7 +188,7 @@ jobs: add-apt-repository ppa:mhier/libboost-latest -y fi - if [[ "${LLVM_APT_SOURCE}" != "" ]]; then + if [[ "${{ matrix.LLVM_APT_SOURCE }}" != "" ]]; then wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - add-apt-repository "${LLVM_APT_SOURCE}" fi @@ -196,11 +196,12 @@ jobs: apt-get update -y # Install apt packages - apt-get install libboost-serialization-dev libboost-dev ${EXTRA_APT_PACKAGES} -y + apt-get install libboost-serialization-dev libboost-dev ${{ matrix.EXTRA_APT_PACKAGES }} -y pip3 install cmake # Set compiler and env variables - export CXX=${COMPILER} + cd /var/workspace + export CXX=${{ matrix.COMPILER }} ${CXX} --version DEPS_DIR="${PWD}/deps" mkdir -p "${DEPS_DIR}" From 17d65d3472d0a98af7e7f6642eb6ee84dc41c499 Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 13:14:53 +0100 Subject: [PATCH 04/12] Upgrade pip --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f93d8502..f9520502 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -197,6 +197,7 @@ jobs: # Install apt packages apt-get install libboost-serialization-dev libboost-dev ${{ matrix.EXTRA_APT_PACKAGES }} -y + pip3 install --upgrade pip pip3 install cmake # Set compiler and env variables From f6228dfd2d1d689f6cf0052554e55125135fc226 Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 13:28:22 +0100 Subject: [PATCH 05/12] Restrict pip version --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f9520502..3d79b940 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -197,7 +197,7 @@ jobs: # Install apt packages apt-get install libboost-serialization-dev libboost-dev ${{ matrix.EXTRA_APT_PACKAGES }} -y - pip3 install --upgrade pip + pip3 install --upgrade "pip < 21.0" pip3 install cmake # Set compiler and env variables From 64f4dcaa6313f04f4784d19ccdac689e0ec045fe Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 13:33:32 +0100 Subject: [PATCH 06/12] Build in parallel --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d79b940..916e0aee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -238,5 +238,5 @@ jobs: # Build cereal and test cmake --version mkdir build && cd build - cmake ${CMAKE_OPTIONS} .. && make -j4 VERBOSE=1 + cmake ${CMAKE_OPTIONS} .. && make -j VERBOSE=1 ctest . --output-on-failure From 0727e566019e980647a385cd66e7da411e0372b0 Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 13:38:23 +0100 Subject: [PATCH 07/12] Use cmake opts from matrix --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 916e0aee..9c83376d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -238,5 +238,5 @@ jobs: # Build cereal and test cmake --version mkdir build && cd build - cmake ${CMAKE_OPTIONS} .. && make -j VERBOSE=1 + cmake ${{ matrix.CMAKE_OPTIONS }} .. && make -j VERBOSE=1 ctest . --output-on-failure From 31f94c1506778242f39b9f6a3e6cec94dd18e69c Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 13:42:35 +0100 Subject: [PATCH 08/12] Remove env section --- .github/workflows/ci.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9c83376d..3e700e44 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -171,11 +171,6 @@ jobs: image: ${{ matrix.CONTAINER }} options: -v ${{ github.workspace }}:/var/workspace shell: bash - # env: - # CMAKE_OPTIONS: ${{ matrix.CMAKE_OPTIONS }} - # COMPILER: ${{ matrix.COMPILER }} - # EXTRA_APT_PACKAGES: ${{ matrix.EXTRA_APT_PACKAGES }} - # LLVM_APT_SOURCE: ${{ matrix.LLVM_APT_SOURCE }} run: | set -ex apt-get update -y @@ -190,7 +185,7 @@ jobs: if [[ "${{ matrix.LLVM_APT_SOURCE }}" != "" ]]; then wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - - add-apt-repository "${LLVM_APT_SOURCE}" + add-apt-repository "${{ matrix.LLVM_APT_SOURCE }}" fi apt-get update -y From 9a3204865e06060a7787cba68626916d3766cb00 Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 13:43:18 +0100 Subject: [PATCH 09/12] Re-enable all 16.04 builds --- .github/workflows/ci.yml | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e700e44..9612db50 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,46 +14,46 @@ jobs: CONTAINER: ubuntu:16.04 NAME: ubuntu-16.04-g++4.7 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DSKIP_PERFORMANCE_COMPARISON=ON' - # COMPILER: 'g++-4.8' - # EXTRA_APT_PACKAGES: 'g++-4.8' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-g++4.8 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DSKIP_PERFORMANCE_COMPARISON=ON' + COMPILER: 'g++-4.8' + EXTRA_APT_PACKAGES: 'g++-4.8' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-g++4.8 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DSKIP_PERFORMANCE_COMPARISON=ON' - # COMPILER: 'g++-4.9' - # EXTRA_APT_PACKAGES: 'g++-4.9' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-g++4.9 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DSKIP_PERFORMANCE_COMPARISON=ON' + COMPILER: 'g++-4.9' + EXTRA_APT_PACKAGES: 'g++-4.9' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-g++4.9 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' - # COMPILER: 'g++-5' - # EXTRA_APT_PACKAGES: 'g++-5' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-g++4.5 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' + COMPILER: 'g++-5' + EXTRA_APT_PACKAGES: 'g++-5' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-g++4.5 - # - COMPILER: 'g++-5' - # EXTRA_APT_PACKAGES: 'gcc-multilib g++-5-multilib linux-libc-dev' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-g++5-multilib + - COMPILER: 'g++-5' + EXTRA_APT_PACKAGES: 'gcc-multilib g++-5-multilib linux-libc-dev' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-g++5-multilib - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' - # COMPILER: 'g++-6' - # EXTRA_APT_PACKAGES: 'g++-6' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-g++6 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' + COMPILER: 'g++-6' + EXTRA_APT_PACKAGES: 'g++-6' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-g++6 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' - # COMPILER: 'g++-7' - # EXTRA_APT_PACKAGES: 'g++-7' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-g++7 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' + COMPILER: 'g++-7' + EXTRA_APT_PACKAGES: 'g++-7' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-g++7 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' - # COMPILER: 'g++-8' - # EXTRA_APT_PACKAGES: 'g++-8' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-g++8 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' + COMPILER: 'g++-8' + EXTRA_APT_PACKAGES: 'g++-8' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-g++8 # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' # COMPILER: 'g++-9' From 4ef45d70f436caf946c2812fadb8b713d2bcbd3c Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 13:54:27 +0100 Subject: [PATCH 10/12] Re-enable all tests --- .github/workflows/ci.yml | 200 +++++++++++++++++++-------------------- 1 file changed, 100 insertions(+), 100 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9612db50..6ee896b7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,111 +55,111 @@ jobs: CONTAINER: ubuntu:16.04 NAME: ubuntu-16.04-g++8 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' - # COMPILER: 'g++-9' - # EXTRA_APT_PACKAGES: 'g++-9' - # CONTAINER: ubuntu:20.04 - # NAME: ubuntu-20.04-g++9 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' + COMPILER: 'g++-9' + EXTRA_APT_PACKAGES: 'g++-9' + CONTAINER: ubuntu:20.04 + NAME: ubuntu-20.04-g++9 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' - # COMPILER: 'g++-10' - # EXTRA_APT_PACKAGES: 'g++-10' - # CONTAINER: ubuntu:20.04 - # NAME: ubuntu-20.04-g++10 - - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' - # COMPILER: 'clang++-3.5' - # EXTRA_APT_PACKAGES: 'clang-3.5' - # LLVM_APT_SOURCE: 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.5 main' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-clang-3.5 - - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' - # COMPILER: 'clang++-3.6' - # EXTRA_APT_PACKAGES: 'clang-3.6' - # LLVM_APT_SOURCE: 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.6 main' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-clang-3.6 - - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' - # COMPILER: 'clang++-3.7' - # EXTRA_APT_PACKAGES: 'clang-3.7' - # LLVM_APT_SOURCE: 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.7 main' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-clang-3.7 - - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' - # COMPILER: 'clang++-3.8' - # EXTRA_APT_PACKAGES: 'clang-3.8' - # LLVM_APT_SOURCE: 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.8 main' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-clang-3.8 - - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' - # COMPILER: 'clang++-3.9' - # EXTRA_APT_PACKAGES: 'clang-3.9' - # LLVM_APT_SOURCE: 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.9 main' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-clang-3.9 - - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' - # COMPILER: 'clang++-4.0' - # EXTRA_APT_PACKAGES: 'clang-4.0 g++-5' - # LLVM_APT_SOURCE: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-clang-4.0 - - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' - # COMPILER: 'clang++-5.0' - # EXTRA_APT_PACKAGES: 'clang-5.0 g++-7' - # LLVM_APT_SOURCE: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-clang-5.0 - - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' - # COMPILER: 'clang++-5.0' - # EXTRA_APT_PACKAGES: 'clang-5.0 g++-7' - # LLVM_APT_SOURCE: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-clang-5.0-cpp17 - - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' - # COMPILER: 'clang++-7' - # EXTRA_APT_PACKAGES: 'clang-7 g++-7' - # LLVM_APT_SOURCE: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-clang-7-cpp17 - - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17 -DCLANG_USE_LIBCPP=ON -DSKIP_PERFORMANCE_COMPARISON=ON' - # COMPILER: 'clang++-8' - # EXTRA_APT_PACKAGES: 'clang-8 g++-8 libc++-8-dev libc++abi-8-dev' - # LLVM_APT_SOURCE: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main' - # CONTAINER: ubuntu:16.04 - # NAME: ubuntu-16.04-clang-8-cpp17 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' + COMPILER: 'g++-10' + EXTRA_APT_PACKAGES: 'g++-10' + CONTAINER: ubuntu:20.04 + NAME: ubuntu-20.04-g++10 + + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' + COMPILER: 'clang++-3.5' + EXTRA_APT_PACKAGES: 'clang-3.5' + LLVM_APT_SOURCE: 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.5 main' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-clang-3.5 + + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' + COMPILER: 'clang++-3.6' + EXTRA_APT_PACKAGES: 'clang-3.6' + LLVM_APT_SOURCE: 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.6 main' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-clang-3.6 + + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' + COMPILER: 'clang++-3.7' + EXTRA_APT_PACKAGES: 'clang-3.7' + LLVM_APT_SOURCE: 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.7 main' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-clang-3.7 + + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' + COMPILER: 'clang++-3.8' + EXTRA_APT_PACKAGES: 'clang-3.8' + LLVM_APT_SOURCE: 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.8 main' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-clang-3.8 + + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' + COMPILER: 'clang++-3.9' + EXTRA_APT_PACKAGES: 'clang-3.9' + LLVM_APT_SOURCE: 'deb http://apt.llvm.org/precise/ llvm-toolchain-precise-3.9 main' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-clang-3.9 + + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' + COMPILER: 'clang++-4.0' + EXTRA_APT_PACKAGES: 'clang-4.0 g++-5' + LLVM_APT_SOURCE: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-clang-4.0 + + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON' + COMPILER: 'clang++-5.0' + EXTRA_APT_PACKAGES: 'clang-5.0 g++-7' + LLVM_APT_SOURCE: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-clang-5.0 + + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' + COMPILER: 'clang++-5.0' + EXTRA_APT_PACKAGES: 'clang-5.0 g++-7' + LLVM_APT_SOURCE: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-clang-5.0-cpp17 + + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' + COMPILER: 'clang++-7' + EXTRA_APT_PACKAGES: 'clang-7 g++-7' + LLVM_APT_SOURCE: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-clang-7-cpp17 + + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17 -DCLANG_USE_LIBCPP=ON -DSKIP_PERFORMANCE_COMPARISON=ON' + COMPILER: 'clang++-8' + EXTRA_APT_PACKAGES: 'clang-8 g++-8 libc++-8-dev libc++abi-8-dev' + LLVM_APT_SOURCE: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main' + CONTAINER: ubuntu:16.04 + NAME: ubuntu-16.04-clang-8-cpp17 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' - # COMPILER: 'clang++-9' - # EXTRA_APT_PACKAGES: 'clang-9' - # CONTAINER: ubuntu:20.04 - # NAME: ubuntu-20.04-clang-9-cpp17 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' + COMPILER: 'clang++-9' + EXTRA_APT_PACKAGES: 'clang-9' + CONTAINER: ubuntu:20.04 + NAME: ubuntu-20.04-clang-9-cpp17 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' - # COMPILER: 'clang++-10' - # EXTRA_APT_PACKAGES: 'clang-10' - # CONTAINER: ubuntu:20.04 - # NAME: ubuntu-20.04-clang-10-cpp17 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' + COMPILER: 'clang++-10' + EXTRA_APT_PACKAGES: 'clang-10' + CONTAINER: ubuntu:20.04 + NAME: ubuntu-20.04-clang-10-cpp17 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' - # COMPILER: 'clang++-11' - # EXTRA_APT_PACKAGES: 'clang-11' - # CONTAINER: ubuntu:20.04 - # NAME: ubuntu-20.04-clang-11-cpp17 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' + COMPILER: 'clang++-11' + EXTRA_APT_PACKAGES: 'clang-11' + CONTAINER: ubuntu:20.04 + NAME: ubuntu-20.04-clang-11-cpp17 - # - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' - # COMPILER: 'clang++-12' - # EXTRA_APT_PACKAGES: 'clang-12' - # CONTAINER: ubuntu:20.04 - # NAME: ubuntu-20.04-clang-12-cpp17 + - CMAKE_OPTIONS: '-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17' + COMPILER: 'clang++-12' + EXTRA_APT_PACKAGES: 'clang-12' + CONTAINER: ubuntu:20.04 + NAME: ubuntu-20.04-clang-12-cpp17 name: ${{ matrix.name }} steps: From 71570605baa128d326c252410e1a5cd76ec1a598 Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 14:05:57 +0100 Subject: [PATCH 11/12] Restore -j4 arg --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ee896b7..17a26169 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -233,5 +233,5 @@ jobs: # Build cereal and test cmake --version mkdir build && cd build - cmake ${{ matrix.CMAKE_OPTIONS }} .. && make -j VERBOSE=1 + cmake ${{ matrix.CMAKE_OPTIONS }} .. && make -j4 VERBOSE=1 ctest . --output-on-failure From f4a6dbd753d61e33a3055ac2c64d5b0c27142816 Mon Sep 17 00:00:00 2001 From: sjrdc Date: Mon, 9 Dec 2024 14:28:46 +0100 Subject: [PATCH 12/12] Re-enable macOS checks --- .github/workflows/ci-macos.yml | 78 +++++++++++++++++----------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml index 84ef8a78..f0d3ca1b 100644 --- a/.github/workflows/ci-macos.yml +++ b/.github/workflows/ci-macos.yml @@ -1,45 +1,45 @@ -# name: cereal mac ci -# on: [push, pull_request] +name: cereal mac ci +on: [push, pull_request] -# jobs: -# test_cereal_macos: -# runs-on: macos-latest -# strategy: -# fail-fast: false -# matrix: -# include: -# - CMAKE_OPTIONS: '-DWITH_WERROR=OFF -DSKIP_PORTABILITY_TEST=ON -DSKIP_PERFORMANCE_COMPARISON=ON' -# COMPILER: 'clang++' -# XCODE_VERSION: 11 -# NAME: macos-latest-clang-xcode11 +jobs: + test_cereal_macos: + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + include: + - CMAKE_OPTIONS: '-DWITH_WERROR=OFF -DSKIP_PORTABILITY_TEST=ON -DSKIP_PERFORMANCE_COMPARISON=ON' + COMPILER: 'clang++' + XCODE_VERSION: 11 + NAME: macos-latest-clang-xcode11 -# - CMAKE_OPTIONS: '-DWITH_WERROR=OFF -DSKIP_PORTABILITY_TEST=ON -DSKIP_PERFORMANCE_COMPARISON=ON' -# COMPILER: 'clang++' -# XCODE_VERSION: 12 -# NAME: macos-latest-clang-xcode12 -# name: ${{ matrix.name }} + - CMAKE_OPTIONS: '-DWITH_WERROR=OFF -DSKIP_PORTABILITY_TEST=ON -DSKIP_PERFORMANCE_COMPARISON=ON' + COMPILER: 'clang++' + XCODE_VERSION: 12 + NAME: macos-latest-clang-xcode12 + name: ${{ matrix.name }} -# steps: -# - name: Checkout code -# uses: actions/checkout@v4 + steps: + - name: Checkout code + uses: actions/checkout@v4 -# - uses: maxim-lobanov/setup-xcode@v1 -# with: -# xcode-version: ${{ matrix.XCODE_VERSION }} + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: ${{ matrix.XCODE_VERSION }} -# - name: build and test -# shell: bash -# env: -# CMAKE_OPTIONS: ${{ matrix.CMAKE_OPTIONS }} -# COMPILER: ${{ matrix.COMPILER }} -# run: | -# set -ex -# # Set compiler and env variables -# export CXX=${COMPILER} -# ${CXX} --version + - name: build and test + shell: bash + env: + CMAKE_OPTIONS: ${{ matrix.CMAKE_OPTIONS }} + COMPILER: ${{ matrix.COMPILER }} + run: | + set -ex + # Set compiler and env variables + export CXX=${COMPILER} + ${CXX} --version -# # Build cereal and test -# cmake --version -# mkdir build && cd build -# cmake ${CMAKE_OPTIONS} .. && make -j4 VERBOSE=1 -# ctest . --output-on-failure + # Build cereal and test + cmake --version + mkdir build && cd build + cmake ${CMAKE_OPTIONS} .. && make -j4 VERBOSE=1 + ctest . --output-on-failure