From c9ad60eefc2e80dfadd3346b2c4d1a2554be5d73 Mon Sep 17 00:00:00 2001 From: Joao Paulo Magalhaes Date: Mon, 12 Aug 2024 19:55:30 +0100 Subject: [PATCH 1/2] update c4core --- ext/c4core | 2 +- src/c4/yml/tree.cpp | 1 + test/test_lib/test_case.hpp | 1 + test/test_lib/test_group.hpp | 2 ++ 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ext/c4core b/ext/c4core index f4da68855..7aba1e111 160000 --- a/ext/c4core +++ b/ext/c4core @@ -1 +1 @@ -Subproject commit f4da68855bcb3015ec20c0c2f37180be90b7d268 +Subproject commit 7aba1e1112e4e0cabdfd653b893053969e5c3c20 diff --git a/src/c4/yml/tree.cpp b/src/c4/yml/tree.cpp index a5fe9c6ff..e20940151 100644 --- a/src/c4/yml/tree.cpp +++ b/src/c4/yml/tree.cpp @@ -5,6 +5,7 @@ C4_SUPPRESS_WARNING_MSVC_WITH_PUSH(4296/*expression is always 'boolean_value'*/) +C4_SUPPRESS_WARNING_MSVC(4702/*unreachable code*/) C4_SUPPRESS_WARNING_GCC_CLANG_WITH_PUSH("-Wold-style-cast") C4_SUPPRESS_WARNING_GCC("-Wtype-limits") C4_SUPPRESS_WARNING_GCC("-Wuseless-cast") diff --git a/test/test_lib/test_case.hpp b/test/test_lib/test_case.hpp index 68f7be328..9eb97a158 100644 --- a/test/test_lib/test_case.hpp +++ b/test/test_lib/test_case.hpp @@ -34,6 +34,7 @@ # pragma warning(push) # pragma warning(disable: 4296/*expression is always 'boolean_value'*/) # pragma warning(disable: 4389/*'==': signed/unsigned mismatch*/) +# pragma warning(disable: 4702/*unreachable code*/) # if C4_MSVC_VERSION != C4_MSVC_VERSION_2017 # pragma warning(disable: 4800/*'int': forcing value to bool 'true' or 'false' (performance warning)*/) # endif diff --git a/test/test_lib/test_group.hpp b/test/test_lib/test_group.hpp index 2ac273c57..fe97d9350 100644 --- a/test/test_lib/test_group.hpp +++ b/test/test_lib/test_group.hpp @@ -9,6 +9,7 @@ #if defined(_MSC_VER) # pragma warning(push) # pragma warning(disable: 4068/*unknown pragma*/) +# pragma warning(disable: 4702/*unreachable code*/) #elif defined(__clang__) # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments" @@ -271,6 +272,7 @@ void add_cases_##group_name(std::vector *group_cases__) #if defined(_MSC_VER) # pragma warning(pop) +# pragma warning(disable: 4702/*unreachable code*/) #elif defined(__clang__) # pragma clang diagnostic pop #elif defined(__GNUC__) From 36527c51ef793586f67723193979957592493c87 Mon Sep 17 00:00:00 2001 From: Joao Paulo Magalhaes Date: Mon, 12 Aug 2024 23:31:04 +0100 Subject: [PATCH 2/2] ci: update workflows to accomodate github's bit rot --- .github/reqs.sh | 2 + .github/workflows/benchmarks.yml | 2 +- .github/workflows/clang.yml | 169 ++++++++++++++------------- .github/workflows/clang_tidy.yml | 20 ++-- .github/workflows/emscripten.yml | 12 +- .github/workflows/gcc.yml | 192 ++++++++++++++++++++----------- .github/workflows/install.yml | 14 +-- .github/workflows/macosx.yml | 45 ++------ .github/workflows/release.yml | 2 +- ext/c4core | 2 +- 10 files changed, 255 insertions(+), 205 deletions(-) diff --git a/.github/reqs.sh b/.github/reqs.sh index 14a3afae9..89875a474 100644 --- a/.github/reqs.sh +++ b/.github/reqs.sh @@ -163,6 +163,8 @@ function c4_install_test_requirements_ubuntu_impl() fi if [ "$PIP_PKG" != "" ]; then + sudo pip3 install --force-reinstall importlib_metadata + sudo pip3 install --force-reinstall setuptools sudo pip3 install setuptools-rust sudo pip3 install --upgrade pip sudo pip3 install $PIP_PKG diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 958f6188a..dbe9f5cba 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -85,7 +85,7 @@ jobs: #- {std: 17, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: static64 static32} #- {std: 20, cxx: vs2022, bt: Release, os: windows-2022, bitlinks: static64 static32} # - - {std: 17, cxx: xcode, xcver: 13, bt: Release, os: macos-11, bitlinks: static64} + - {std: 17, cxx: xcode, xcver: 15, bt: Release, os: macos-13, bitlinks: static64} env: {BM: ON, STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: # use fetch-depth to ensure all tags are fetched diff --git a/.github/workflows/clang.yml b/.github/workflows/clang.yml index 911163d65..ad3d2e251 100644 --- a/.github/workflows/clang.yml +++ b/.github/workflows/clang.yml @@ -1,6 +1,7 @@ name: clang defaults: + #if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP run: # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system @@ -31,20 +32,20 @@ jobs: continue-on-error: true if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct runs-on: ubuntu-latest - container: ghcr.io/biojppm/c4core/ubuntu18.04:latest # use the docker image + container: ghcr.io/biojppm/c4core/ubuntu22.04:latest # use the docker image strategy: fail-fast: false matrix: include: - - {std: 20, cxx: "10" , bt: Debug , bitlinks: shared64 static32} - - {std: 20, cxx: "10" , bt: Release, bitlinks: shared64 static32} - - {std: 11, cxx: "6.0", bt: Debug , bitlinks: shared64 static32} - - {std: 11, cxx: "6.0", bt: Release, bitlinks: shared64 static32} - env: {STD: "${{matrix.std}}", CXX_: "clang++-${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} + - {std: 20, cxx: clang++-17 , bt: Debug , bitlinks: shared64 static32} + - {std: 20, cxx: clang++-17 , bt: Release, bitlinks: shared64 static32} + - {std: 11, cxx: clang++-9, bt: Debug , bitlinks: shared64 static32} + - {std: 11, cxx: clang++-9, bt: Release, bitlinks: shared64 static32} + env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 - - run: c4core-install $CXX_ + - run: c4core-install ${{matrix.cxx}} - {name: show info, run: source .github/setenv.sh && c4_show_info} - name: shared64-configure--------------------------------------------------- run: source .github/setenv.sh && c4_cfg_test shared64 @@ -67,25 +68,26 @@ jobs: - {name: shared32-run, run: source .github/setenv.sh && c4_run_test shared32} - {name: shared32-pack, run: source .github/setenv.sh && c4_package shared32} + #---------------------------------------------------------------------------- clang_tabtokens: name: clang_tabtokens/${{matrix.cxx}}/c++${{matrix.std}}/${{matrix.bt}} continue-on-error: true if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct runs-on: ubuntu-latest - container: ghcr.io/biojppm/c4core/ubuntu18.04:latest # use the docker image + container: ghcr.io/biojppm/c4core/ubuntu22.04:latest # use the docker image strategy: fail-fast: false matrix: include: - - {std: 20, cxx: "10" , bt: Debug , bitlinks: shared64 static32} - - {std: 20, cxx: "10" , bt: Release, bitlinks: shared64 static32} - - {std: 11, cxx: "6.0", bt: Debug , bitlinks: shared64 static32} - - {std: 11, cxx: "6.0", bt: Release, bitlinks: shared64 static32} - env: {STD: "${{matrix.std}}", CXX_: "clang++-${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", + - {std: 20, cxx: clang++-17 , bt: Debug , bitlinks: shared64 static32} + - {std: 20, cxx: clang++-17 , bt: Release, bitlinks: shared64 static32} + - {std: 11, cxx: clang++-9, bt: Debug , bitlinks: shared64 static32} + - {std: 11, cxx: clang++-9, bt: Release, bitlinks: shared64 static32} + env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", CMAKE_FLAGS: "-DRYML_WITH_TAB_TOKENS=ON", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 - run: c4core-install $CXX_ - {name: show info, run: source .github/setenv.sh && c4_show_info} @@ -116,21 +118,20 @@ jobs: continue-on-error: true if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct runs-on: ubuntu-latest - container: ghcr.io/biojppm/c4core/ubuntu18.04:latest # use the docker image + container: ghcr.io/biojppm/c4core/ubuntu22.04:latest # use the docker image strategy: fail-fast: false matrix: include: - - {std: 20, cxx: "10" , bt: Debug , bitlinks: shared64 static32} - - {std: 20, cxx: "10" , bt: Release, bitlinks: shared64 static32} - - {std: 11, cxx: "6.0", bt: Debug , bitlinks: shared64 static32} - - {std: 11, cxx: "6.0", bt: Release, bitlinks: shared64 static32} - env: {CXXFLAGS: "-fno-exceptions -fno-rtti", STD: "${{matrix.std}}", CXX_: "clang++-${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} + - {std: 20, cxx: clang++-17 , bt: Debug , bitlinks: shared64 static32} + - {std: 20, cxx: clang++-17 , bt: Release, bitlinks: shared64 static32} + - {std: 11, cxx: clang++-9 , bt: Debug , bitlinks: shared64 static32} + - {std: 11, cxx: clang++-9 , bt: Release, bitlinks: shared64 static32} + env: {CXXFLAGS: "-fno-exceptions -fno-rtti", STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} - - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 - - run: c4core-install $CXX_ + - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + - run: c4core-install ${{matrix.cxx}} - {name: show info, run: source .github/setenv.sh && c4_show_info} - name: shared64-configure--------------------------------------------------- run: source .github/setenv.sh && c4_cfg_test shared64 @@ -164,39 +165,51 @@ jobs: fail-fast: false matrix: include: - - {std: 11, cxx: "16" , bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "16" , bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "15" , bt: Debug , vg: on, img: ubuntu22.04} # install of clang15 fails on ubuntu18.04 - - {std: 11, cxx: "15" , bt: Release, vg: on, img: ubuntu22.04} # install of clang15 fails on ubuntu18.04 - - {std: 11, cxx: "14" , bt: Debug , vg: on, img: ubuntu22.04} # install of clang14 fails on ubuntu18.04 - - {std: 11, cxx: "14" , bt: Release, vg: on, img: ubuntu22.04} # install of clang14 fails on ubuntu18.04 - - {std: 11, cxx: "13" , bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "13" , bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "12" , bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "12" , bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "11" , bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "11" , bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "10" , bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "10" , bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "9" , bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "9" , bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "8" , bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "8" , bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "7" , bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "7" , bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "6.0", bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "6.0", bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "5.0", bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "5.0", bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "4.0", bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "4.0", bt: Release, vg: on, img: ubuntu18.04} - - {std: 11, cxx: "3.9", bt: Debug , vg: on, img: ubuntu18.04} - - {std: 11, cxx: "3.9", bt: Release, vg: on, img: ubuntu18.04} - env: {STD: "${{matrix.std}}", CXX_: "clang++-${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} + - {std: 11, cxx: clang++-17 , bt: Debug , vg: on, img: ubuntu22.04} + - {std: 11, cxx: clang++-17 , bt: Release, vg: on, img: ubuntu22.04} + - {std: 11, cxx: clang++-16 , bt: Debug , vg: on, img: ubuntu22.04} + - {std: 11, cxx: clang++-16 , bt: Release, vg: on, img: ubuntu22.04} + - {std: 11, cxx: clang++-15 , bt: Debug , vg: on, img: ubuntu22.04} # install of clang15 fails on ubuntu18.04 + - {std: 11, cxx: clang++-15 , bt: Release, vg: on, img: ubuntu22.04} # install of clang15 fails on ubuntu18.04 + - {std: 11, cxx: clang++-14 , bt: Debug , vg: on, img: ubuntu22.04} # install of clang14 fails on ubuntu18.04 + - {std: 11, cxx: clang++-14 , bt: Release, vg: on, img: ubuntu22.04} # install of clang14 fails on ubuntu18.04 + - {std: 11, cxx: clang++-13 , bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-13 , bt: Release, vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-12 , bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-12 , bt: Release, vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-11 , bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-11 , bt: Release, vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-10 , bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-10 , bt: Release, vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-9 , bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-9 , bt: Release, vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-8 , bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-8 , bt: Release, vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-7 , bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-7 , bt: Release, vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-6.0, bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-6.0, bt: Release, vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-5.0, bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-5.0, bt: Release, vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-4.0, bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-4.0, bt: Release, vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-3.9, bt: Debug , vg: on, img: ubuntu18.04} + - {std: 11, cxx: clang++-3.9, bt: Release, vg: on, img: ubuntu18.04} + env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} - - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 - - run: c4core-install $CXX_ + # cannot use the checkout@v3 or v4 action on ubuntu18.04 because of nodejs version + #- {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + #... so we checkout manually: + - name: checkout + run: | + set -x + git init -q . + git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + git remote add origin $GITHUB_SERVER_URL/$GITHUB_REPOSITORY + git fetch origin $GITHUB_HEAD_REF + git reset --hard FETCH_HEAD + git submodule update --init --recursive + - run: c4core-install ${{matrix.cxx}} - {name: show info, run: source .github/setenv.sh && c4_show_info} - name: shared64-configure--------------------------------------------------- run: source .github/setenv.sh && c4_cfg_test shared64 @@ -221,36 +234,36 @@ jobs: #---------------------------------------------------------------------------- clangsan: - name: clang/${{matrix.cxx}}/${{matrix.bt}}/c++${{matrix.std}} + name: clang/${{matrix.bt}}/c++${{matrix.std}} continue-on-error: true if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct runs-on: ubuntu-latest - container: ghcr.io/biojppm/c4core/ubuntu18.04:latest # use the docker image + container: ghcr.io/biojppm/c4core/ubuntu22.04:latest # use the docker image strategy: fail-fast: false matrix: include: - - {std: 11, cxx: "16" , bt: asan, bitlinks: static64} - - {std: 14, cxx: "16" , bt: asan, bitlinks: static64} - - {std: 17, cxx: "16" , bt: asan, bitlinks: static64} - - {std: 20, cxx: "16" , bt: asan, bitlinks: static64} - - {std: 11, cxx: "16" , bt: lsan, bitlinks: static64} - - {std: 14, cxx: "16" , bt: lsan, bitlinks: static64} - - {std: 17, cxx: "16" , bt: lsan, bitlinks: static64} - - {std: 20, cxx: "16" , bt: lsan, bitlinks: static64} - - {std: 11, cxx: "16" , bt: tsan, bitlinks: static64} - - {std: 14, cxx: "16" , bt: tsan, bitlinks: static64} - - {std: 17, cxx: "16" , bt: tsan, bitlinks: static64} - - {std: 20, cxx: "16" , bt: tsan, bitlinks: static64} - - {std: 11, cxx: "16" , bt: ubsan, bitlinks: static64} - - {std: 14, cxx: "16" , bt: ubsan, bitlinks: static64} - - {std: 17, cxx: "16" , bt: ubsan, bitlinks: static64} - - {std: 20, cxx: "16" , bt: ubsan, bitlinks: static64} - env: {STD: "${{matrix.std}}", CXX_: "clang++-${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} + - {std: 11, cxx: clang++-17 , bt: asan, bitlinks: static64} + - {std: 14, cxx: clang++-17 , bt: asan, bitlinks: static64} + - {std: 17, cxx: clang++-17 , bt: asan, bitlinks: static64} + - {std: 20, cxx: clang++-17 , bt: asan, bitlinks: static64} + - {std: 11, cxx: clang++-17 , bt: lsan, bitlinks: static64} + - {std: 14, cxx: clang++-17 , bt: lsan, bitlinks: static64} + - {std: 17, cxx: clang++-17 , bt: lsan, bitlinks: static64} + - {std: 20, cxx: clang++-17 , bt: lsan, bitlinks: static64} + - {std: 11, cxx: clang++-17 , bt: tsan, bitlinks: static64} + - {std: 14, cxx: clang++-17 , bt: tsan, bitlinks: static64} + - {std: 17, cxx: clang++-17 , bt: tsan, bitlinks: static64} + - {std: 20, cxx: clang++-17 , bt: tsan, bitlinks: static64} + - {std: 11, cxx: clang++-17 , bt: ubsan, bitlinks: static64} + - {std: 14, cxx: clang++-17 , bt: ubsan, bitlinks: static64} + - {std: 17, cxx: clang++-17 , bt: ubsan, bitlinks: static64} + - {std: 20, cxx: clang++-17 , bt: ubsan, bitlinks: static64} + env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 - - run: c4core-install $CXX_ + - run: c4core-install ${{matrix.cxx}} - {name: show info, run: source .github/setenv.sh && c4_show_info} - name: shared64-configure--------------------------------------------------- run: source .github/setenv.sh && c4_cfg_test shared64 @@ -294,7 +307,7 @@ jobs: # - {std: 20, cxx: clang++-10, bt: Release, bitlinks: shared64, os: ubuntu-20.04} # env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} # steps: -# - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} +# - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} # - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 # - {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS} # - {name: show info, run: source .github/setenv.sh && c4_show_info} diff --git a/.github/workflows/clang_tidy.yml b/.github/workflows/clang_tidy.yml index cd79d7e8c..ef5c6ccf2 100644 --- a/.github/workflows/clang_tidy.yml +++ b/.github/workflows/clang_tidy.yml @@ -31,23 +31,23 @@ jobs: continue-on-error: true if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct runs-on: ubuntu-latest - container: ghcr.io/biojppm/c4core/ubuntu18.04:latest # use the docker image + container: ghcr.io/biojppm/c4core/ubuntu22.04:latest # use the docker image strategy: fail-fast: false matrix: include: # clang tidy takes a long time, so don't do multiple bits/linktypes - - {std: 11, cxx: clang++-16, bt: Debug , lint: clang-tidy, bitlinks: shared64} - - {std: 11, cxx: clang++-16, bt: Debug , lint: clang-tidy, bitlinks: shared32} - - {std: 11, cxx: clang++-16, bt: Debug , lint: clang-tidy, bitlinks: static64} - - {std: 11, cxx: clang++-16, bt: Debug , lint: clang-tidy, bitlinks: static32} - - {std: 11, cxx: clang++-16, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: shared64} - - {std: 11, cxx: clang++-16, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: shared32} - - {std: 11, cxx: clang++-16, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: static64} - - {std: 11, cxx: clang++-16, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: static32} + - {std: 11, cxx: clang++-17, bt: Debug , lint: clang-tidy, bitlinks: shared64} + - {std: 11, cxx: clang++-17, bt: Debug , lint: clang-tidy, bitlinks: shared32} + - {std: 11, cxx: clang++-17, bt: Debug , lint: clang-tidy, bitlinks: static64} + - {std: 11, cxx: clang++-17, bt: Debug , lint: clang-tidy, bitlinks: static32} + - {std: 11, cxx: clang++-17, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: shared64} + - {std: 11, cxx: clang++-17, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: shared32} + - {std: 11, cxx: clang++-17, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: static64} + - {std: 11, cxx: clang++-17, bt: ReleaseWithDebInfo, lint: clang-tidy, bitlinks: static32} env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 - run: c4core-install ${{matrix.cxx}} - {name: show info, run: source .github/setenv.sh && c4_show_info} diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index b3a1083d2..313d52422 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml @@ -27,10 +27,14 @@ jobs: #---------------------------------------------------------------------------- emscripten: - if: | - (!contains(github.event.head_commit.message, 'skip all')) || - (!contains(github.event.head_commit.message, 'skip emscripten')) || - contains(github.event.head_commit.message, 'only emscripten') + # this job is always causing trouble, with failures showing unreadable code dumps + # eg https://github.com/biojppm/rapidyaml/actions/runs/10368522906 + # Disabling until we can find a proper way to investigate these failures: + if: ${{ false }} + #if: | + # (!contains(github.event.head_commit.message, 'skip all')) || + # (!contains(github.event.head_commit.message, 'skip emscripten')) || + # contains(github.event.head_commit.message, 'only emscripten') name: emscripten/${{matrix.emver}}/c++${{matrix.std}}/${{matrix.bt}} continue-on-error: true runs-on: ${{matrix.os}} diff --git a/.github/workflows/gcc.yml b/.github/workflows/gcc.yml index e3660d926..22309063c 100644 --- a/.github/workflows/gcc.yml +++ b/.github/workflows/gcc.yml @@ -1,6 +1,7 @@ name: gcc defaults: + #if: "!contains(github.event.head_commit.message, 'skip ci')" # SKIP run: # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system @@ -31,23 +32,34 @@ jobs: continue-on-error: true if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct runs-on: ubuntu-latest - container: ghcr.io/biojppm/c4core/ubuntu18.04:latest # use the docker image + container: ghcr.io/biojppm/c4core/${{matrix.img}}:latest # use the docker image strategy: fail-fast: false matrix: include: - - {std: 11, cxx: g++-7 , bt: Debug , bitlinks: shared64 static32} - - {std: 11, cxx: g++-7 , bt: Release, bitlinks: shared64 static32} - - {std: 20, cxx: g++-10 , bt: Debug , bitlinks: shared64 static32} - - {std: 20, cxx: g++-10 , bt: Release, bitlinks: shared64 static32} - - {std: 11, cxx: g++-5 , bt: Debug , bitlinks: shared64 static32} - - {std: 11, cxx: g++-5 , bt: Release, bitlinks: shared64 static32} - - {std: 11, cxx: g++-4.8, bt: Debug , bitlinks: shared64 static32} - - {std: 11, cxx: g++-4.8, bt: Release, bitlinks: shared64 static32} + - {std: 11, cxx: g++-14 , bt: Debug , bitlinks: shared64 static32, img: ubuntu22.04} + - {std: 11, cxx: g++-14 , bt: Release, bitlinks: shared64 static32, img: ubuntu22.04} + - {std: 20, cxx: g++-14 , bt: Debug , bitlinks: shared64 static32, img: ubuntu22.04} + - {std: 20, cxx: g++-14 , bt: Release, bitlinks: shared64 static32, img: ubuntu22.04} + - {std: 11, cxx: g++-5 , bt: Debug , bitlinks: shared64 static32, img: ubuntu18.04} + - {std: 11, cxx: g++-5 , bt: Release, bitlinks: shared64 static32, img: ubuntu18.04} + - {std: 11, cxx: g++-4.8, bt: Debug , bitlinks: shared64 static32, img: ubuntu18.04} + - {std: 11, cxx: g++-4.8, bt: Release, bitlinks: shared64 static32, img: ubuntu18.04} env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} - - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + # cannot use the checkout@v3 or v4 action on ubuntu18.04 because of nodejs version + #- {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + #- run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + #... so we checkout manually: + - name: checkout + run: | + set -x + git init -q . + git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + git remote add origin $GITHUB_SERVER_URL/$GITHUB_REPOSITORY + git fetch origin $GITHUB_HEAD_REF + git reset --hard FETCH_HEAD + git submodule update --init --recursive - run: c4core-install ${{matrix.cxx}} - {name: show info, run: source .github/setenv.sh && c4_show_info} - name: shared64-configure--------------------------------------------------- @@ -85,7 +97,7 @@ jobs: - {std: 11, gcc: 12 , bt: Release} env: {STD: "${{matrix.std}}", CXX_: "${{matrix.gcc}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 - run: c4core-install g++-${{matrix.gcc}} - {name: show info, run: source .github/setenv.sh && c4_show_info} @@ -110,25 +122,36 @@ jobs: continue-on-error: true if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct runs-on: ubuntu-latest - container: ghcr.io/biojppm/c4core/ubuntu18.04:latest # use the docker image + container: ghcr.io/biojppm/c4core/${{matrix.img}}:latest # use the docker image strategy: fail-fast: false matrix: include: - - {std: 11, cxx: g++-7 , bt: Debug , bitlinks: shared64 static32} - - {std: 11, cxx: g++-7 , bt: Release, bitlinks: shared64 static32} - - {std: 20, cxx: g++-10 , bt: Debug , bitlinks: shared64 static32} - - {std: 20, cxx: g++-10 , bt: Release, bitlinks: shared64 static32} - - {std: 11, cxx: g++-5 , bt: Debug , bitlinks: shared64 static32} - - {std: 11, cxx: g++-5 , bt: Release, bitlinks: shared64 static32} - - {std: 11, cxx: g++-4.8, bt: Debug , bitlinks: shared64 static32} - - {std: 11, cxx: g++-4.8, bt: Release, bitlinks: shared64 static32} + - {std: 11, cxx: g++-14 , bt: Debug , bitlinks: shared64 static32, img: ubuntu22.04} + - {std: 11, cxx: g++-14 , bt: Release, bitlinks: shared64 static32, img: ubuntu22.04} + - {std: 20, cxx: g++-14 , bt: Debug , bitlinks: shared64 static32, img: ubuntu22.04} + - {std: 20, cxx: g++-14 , bt: Release, bitlinks: shared64 static32, img: ubuntu22.04} + - {std: 11, cxx: g++-5 , bt: Debug , bitlinks: shared64 static32, img: ubuntu18.04} + - {std: 11, cxx: g++-5 , bt: Release, bitlinks: shared64 static32, img: ubuntu18.04} + - {std: 11, cxx: g++-4.8, bt: Debug , bitlinks: shared64 static32, img: ubuntu18.04} + - {std: 11, cxx: g++-4.8, bt: Release, bitlinks: shared64 static32, img: ubuntu18.04} env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", CMAKE_FLAGS: "-DRYML_WITH_TAB_TOKENS=ON", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} - - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + # cannot use the checkout@v3 or v4 action on ubuntu18.04 because of nodejs version + #- {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + #- run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + #... so we checkout manually: + - name: checkout + run: | + set -x + git init -q . + git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + git remote add origin $GITHUB_SERVER_URL/$GITHUB_REPOSITORY + git fetch origin $GITHUB_HEAD_REF + git reset --hard FETCH_HEAD + git submodule update --init --recursive - run: c4core-install ${{matrix.cxx}} - {name: show info, run: source .github/setenv.sh && c4_show_info} - name: shared64-configure--------------------------------------------------- @@ -158,19 +181,30 @@ jobs: continue-on-error: true if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct runs-on: ubuntu-latest - container: ghcr.io/biojppm/c4core/ubuntu18.04:latest # use the docker image + container: ghcr.io/biojppm/c4core/${{matrix.img}}:latest # use the docker image strategy: fail-fast: false matrix: include: - - {std: 11, cxx: g++-7 , bt: Debug , bitlinks: shared64 static32} - - {std: 11, cxx: g++-7 , bt: Release, bitlinks: shared64 static32} - - {std: 20, cxx: g++-10 , bt: Debug , bitlinks: shared64 static32} - - {std: 20, cxx: g++-10 , bt: Release, bitlinks: shared64 static32} + - {std: 11, cxx: g++-5, bt: Debug , bitlinks: shared64 static32, img: ubuntu18.04} + - {std: 11, cxx: g++-5, bt: Release, bitlinks: shared64 static32, img: ubuntu18.04} + - {std: 20, cxx: g++-14, bt: Debug , bitlinks: shared64 static32, img: ubuntu22.04} + - {std: 20, cxx: g++-14, bt: Release, bitlinks: shared64 static32, img: ubuntu22.04} env: {CXXFLAGS: "-fno-exceptions -fno-rtti", STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} - - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + # cannot use the checkout@v3 or v4 action on ubuntu18.04 because of nodejs version + #- {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + #- run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + #... so we checkout manually: + - name: checkout + run: | + set -x + git init -q . + git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + git remote add origin $GITHUB_SERVER_URL/$GITHUB_REPOSITORY + git fetch origin $GITHUB_HEAD_REF + git reset --hard FETCH_HEAD + git submodule update --init --recursive - run: c4core-install ${{matrix.cxx}} - {name: show info, run: source .github/setenv.sh && c4_show_info} - name: shared64-configure--------------------------------------------------- @@ -206,21 +240,25 @@ jobs: matrix: include: # VALGRIND - - {std: 11, cxx: g++-12, bt: Debug , vg: ON, img: ubuntu22.04} - - {std: 11, cxx: g++-12, bt: Release, vg: ON, img: ubuntu22.04} - - {std: 14, cxx: g++-12, bt: Debug , vg: ON, img: ubuntu22.04} - - {std: 14, cxx: g++-12, bt: Release, vg: ON, img: ubuntu22.04} - - {std: 17, cxx: g++-12, bt: Debug , vg: ON, img: ubuntu22.04} - - {std: 17, cxx: g++-12, bt: Release, vg: ON, img: ubuntu22.04} - - {std: 20, cxx: g++-12, bt: Debug , vg: ON, img: ubuntu22.04} - - {std: 20, cxx: g++-12, bt: Release, vg: ON, img: ubuntu22.04} + - {std: 11, cxx: g++-14, bt: Debug , vg: ON, img: ubuntu22.04} + - {std: 11, cxx: g++-14, bt: Release, vg: ON, img: ubuntu22.04} + - {std: 14, cxx: g++-14, bt: Debug , vg: ON, img: ubuntu22.04} + - {std: 14, cxx: g++-14, bt: Release, vg: ON, img: ubuntu22.04} + - {std: 17, cxx: g++-14, bt: Debug , vg: ON, img: ubuntu22.04} + - {std: 17, cxx: g++-14, bt: Release, vg: ON, img: ubuntu22.04} + - {std: 20, cxx: g++-14, bt: Debug , vg: ON, img: ubuntu22.04} + - {std: 20, cxx: g++-14, bt: Release, vg: ON, img: ubuntu22.04} # - - {std: 11, cxx: g++-11 , bt: Debug , img: ubuntu18.04} - - {std: 11, cxx: g++-11 , bt: Release, img: ubuntu18.04} - - {std: 11, cxx: g++-10 , bt: Debug , img: ubuntu18.04} - - {std: 11, cxx: g++-10 , bt: Release, img: ubuntu18.04} - - {std: 11, cxx: g++-9 , bt: Debug , img: ubuntu18.04} - - {std: 11, cxx: g++-9 , bt: Release, img: ubuntu18.04} + - {std: 11, cxx: g++-13 , bt: Debug , img: ubuntu22.04} + - {std: 11, cxx: g++-13 , bt: Release, img: ubuntu22.04} + - {std: 11, cxx: g++-13 , bt: Debug , img: ubuntu22.04} + - {std: 11, cxx: g++-13 , bt: Release, img: ubuntu22.04} + - {std: 11, cxx: g++-11 , bt: Debug , img: ubuntu22.04} + - {std: 11, cxx: g++-11 , bt: Release, img: ubuntu22.04} + - {std: 11, cxx: g++-10 , bt: Debug , img: ubuntu22.04} + - {std: 11, cxx: g++-10 , bt: Release, img: ubuntu22.04} + - {std: 11, cxx: g++-9 , bt: Debug , img: ubuntu22.04} + - {std: 11, cxx: g++-9 , bt: Release, img: ubuntu22.04} - {std: 11, cxx: g++-8 , bt: Debug , img: ubuntu18.04} - {std: 11, cxx: g++-8 , bt: Release, img: ubuntu18.04} - {std: 11, cxx: g++-7 , bt: Debug , img: ubuntu18.04} @@ -235,8 +273,19 @@ jobs: - {std: 11, cxx: g++-4.8, bt: Release, img: ubuntu18.04} env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} - - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + # cannot use the checkout@v3 or v4 action on ubuntu18.04 because of nodejs version + #- {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + #- run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + #... so we checkout manually: + - name: checkout + run: | + set -x + git init -q . + git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + git remote add origin $GITHUB_SERVER_URL/$GITHUB_REPOSITORY + git fetch origin $GITHUB_HEAD_REF + git reset --hard FETCH_HEAD + git submodule update --init --recursive - run: c4core-install ${{matrix.cxx}} - {name: show info, run: source .github/setenv.sh && c4_show_info} - name: shared64-configure--------------------------------------------------- @@ -271,25 +320,25 @@ jobs: fail-fast: false matrix: include: - - {std: 11, cxx: g++-12, bt: asan, bitlinks: static64} - - {std: 14, cxx: g++-12, bt: asan, bitlinks: static64} - - {std: 17, cxx: g++-12, bt: asan, bitlinks: static64} - - {std: 20, cxx: g++-12, bt: asan, bitlinks: static64} - - {std: 11, cxx: g++-12, bt: lsan, bitlinks: static64} - - {std: 14, cxx: g++-12, bt: lsan, bitlinks: static64} - - {std: 17, cxx: g++-12, bt: lsan, bitlinks: static64} - - {std: 20, cxx: g++-12, bt: lsan, bitlinks: static64} - - {std: 11, cxx: g++-12, bt: tsan, bitlinks: static64} - - {std: 14, cxx: g++-12, bt: tsan, bitlinks: static64} - - {std: 17, cxx: g++-12, bt: tsan, bitlinks: static64} - - {std: 20, cxx: g++-12, bt: tsan, bitlinks: static64} - - {std: 11, cxx: g++-12, bt: ubsan, bitlinks: static64} - - {std: 14, cxx: g++-12, bt: ubsan, bitlinks: static64} - - {std: 17, cxx: g++-12, bt: ubsan, bitlinks: static64} - - {std: 20, cxx: g++-12, bt: ubsan, bitlinks: static64} + - {std: 11, cxx: g++-14, bt: asan, bitlinks: static64} + - {std: 14, cxx: g++-14, bt: asan, bitlinks: static64} + - {std: 17, cxx: g++-14, bt: asan, bitlinks: static64} + - {std: 20, cxx: g++-14, bt: asan, bitlinks: static64} + - {std: 11, cxx: g++-14, bt: lsan, bitlinks: static64} + - {std: 14, cxx: g++-14, bt: lsan, bitlinks: static64} + - {std: 17, cxx: g++-14, bt: lsan, bitlinks: static64} + - {std: 20, cxx: g++-14, bt: lsan, bitlinks: static64} + - {std: 11, cxx: g++-14, bt: tsan, bitlinks: static64} + - {std: 14, cxx: g++-14, bt: tsan, bitlinks: static64} + - {std: 17, cxx: g++-14, bt: tsan, bitlinks: static64} + - {std: 20, cxx: g++-14, bt: tsan, bitlinks: static64} + - {std: 11, cxx: g++-14, bt: ubsan, bitlinks: static64} + - {std: 14, cxx: g++-14, bt: ubsan, bitlinks: static64} + - {std: 17, cxx: g++-14, bt: ubsan, bitlinks: static64} + - {std: 20, cxx: g++-14, bt: ubsan, bitlinks: static64} env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 - run: c4core-install ${{matrix.cxx}} - {name: show info, run: source .github/setenv.sh && c4_show_info} @@ -317,7 +366,7 @@ jobs: #---------------------------------------------------------------------------- arm: continue-on-error: true - if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct + if: always() # https://stackoverflow.com/questions/62045967/github-actions-is-there-a-way-to-continue-on-error-while-still-getting-correct runs-on: ubuntu-latest container: ghcr.io/biojppm/c4core/ubuntu18.04:latest # use the docker image strategy: @@ -333,8 +382,19 @@ jobs: - {std: 17, bt: Release, toolchain: ext/c4core/cmake/Toolchain-Arm-ubuntu.cmake, cxx: arm-linux-gnueabihf-gcc, os: ubuntu-20.04} env: {TOOLCHAIN: "${{matrix.toolchain}}", STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} - - run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + # cannot use the checkout@v3 or v4 action on ubuntu18.04 because of nodejs version + #- {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + #- run: git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + #... so we checkout manually: + - name: checkout + run: | + set -x + git init -q . + git config --system --add safe.directory '*' # needed for running in the docker image. see https://github.com/actions/checkout/issues/1169 + git remote add origin $GITHUB_SERVER_URL/$GITHUB_REPOSITORY + git fetch origin $GITHUB_HEAD_REF + git reset --hard FETCH_HEAD + git submodule update --init --recursive - name: install gcc-arm-linux-gnueabihf run: | c4core-install arm-linux-gnueabihf diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml index ea9e19f5f..e72f670ac 100644 --- a/.github/workflows/install.yml +++ b/.github/workflows/install.yml @@ -41,8 +41,8 @@ jobs: - {name: find_package/linux , sdir: test/test_install , os: ubuntu-20.04, cxx: g++-10 , gen: "-DCMAKE_CXX_COMPILER=g++-10" , tgt: all , bt: Debug , vars: "-Dryml_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/ryml -DRYML_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: } - {name: find_package/linux/libcxx, sdir: test/test_install , os: ubuntu-20.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Release, vars: "-Dryml_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/ryml -DRYML_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: "-DRYML_USE_LIBCXX=ON"} - {name: find_package/linux/libcxx, sdir: test/test_install , os: ubuntu-20.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Debug , vars: "-Dryml_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/ryml -DRYML_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: "-DRYML_USE_LIBCXX=ON"} - - {name: find_package/macos , sdir: test/test_install , os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Release, vars: "-Dryml_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/ryml -DRYML_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: } - - {name: find_package/macos , sdir: test/test_install , os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Debug , vars: "-Dryml_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/ryml -DRYML_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: } + - {name: find_package/macos , sdir: test/test_install , os: macos-13 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Release, vars: "-Dryml_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/ryml -DRYML_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: } + - {name: find_package/macos , sdir: test/test_install , os: macos-13 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Debug , vars: "-Dryml_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/ryml -DRYML_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: } - {name: find_package/win , sdir: test/test_install , os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Release, vars: "-Dryml_DIR=$GITHUB_WORKSPACE/$PDIR/cmake -DRYML_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: } - {name: find_package/win , sdir: test/test_install , os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Debug , vars: "-Dryml_DIR=$GITHUB_WORKSPACE/$PDIR/cmake -DRYML_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: } # @@ -50,8 +50,8 @@ jobs: - {name: find_library/linux , sdir: test/test_install , os: ubuntu-20.04, cxx: g++-10 , gen: "-DCMAKE_CXX_COMPILER=g++-10" , tgt: all , bt: Debug , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DRYML_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: } - {name: find_library/linux/libcxx, sdir: test/test_install , os: ubuntu-20.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DRYML_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: "-DRYML_USE_LIBCXX=ON"} - {name: find_library/linux/libcxx, sdir: test/test_install , os: ubuntu-20.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Debug , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DRYML_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: "-DRYML_USE_LIBCXX=ON"} - - {name: find_library/macos , sdir: test/test_install , os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DRYML_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: } - - {name: find_library/macos , sdir: test/test_install , os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Debug , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DRYML_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: } + - {name: find_library/macos , sdir: test/test_install , os: macos-13 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DRYML_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: } + - {name: find_library/macos , sdir: test/test_install , os: macos-13 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Debug , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DRYML_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: } - {name: find_library/win , sdir: test/test_install , os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DRYML_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: } - {name: find_library/win , sdir: test/test_install , os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Debug , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR -DRYML_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: } # @@ -59,8 +59,8 @@ jobs: - {name: singleheader/linux , sdir: test/test_singleheader, os: ubuntu-20.04, cxx: g++-10 , gen: "-DCMAKE_CXX_COMPILER=g++-10" , tgt: all , bt: Debug , vars: , commonvars: } - {name: singleheader/linux/libcxx, sdir: test/test_singleheader, os: ubuntu-20.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Release, vars: , commonvars: "-DRYML_USE_LIBCXX=ON"} - {name: singleheader/linux/libcxx, sdir: test/test_singleheader, os: ubuntu-20.04, cxx: clang++-9, gen: "-DCMAKE_CXX_COMPILER=clang++-9" , tgt: all , bt: Debug , vars: , commonvars: "-DRYML_USE_LIBCXX=ON"} - - {name: singleheader/macos , sdir: test/test_singleheader, os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Release, vars: , commonvars: } - - {name: singleheader/macos , sdir: test/test_singleheader, os: macos-11.0 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Debug , vars: , commonvars: } + - {name: singleheader/macos , sdir: test/test_singleheader, os: macos-13 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Release, vars: , commonvars: } + - {name: singleheader/macos , sdir: test/test_singleheader, os: macos-13 , cxx: xcode , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64", tgt: ALL_BUILD, bt: Debug , vars: , commonvars: } - {name: singleheader/win , sdir: test/test_singleheader, os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Release, vars: , commonvars: } - {name: singleheader/win , sdir: test/test_singleheader, os: windows-2019, cxx: vs2019 , gen: "-G 'Visual Studio 16 2019' -A x64" , tgt: ALL_BUILD, bt: Debug , vars: , commonvars: } env: @@ -71,7 +71,7 @@ jobs: IDIR: "install/${{matrix.name}}-${{matrix.bt}}" PDIR: "prefix/${{matrix.name}}-${{matrix.bt}}" steps: - - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive}} + - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} - {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS} - {name: show info, run: source .github/setenv.sh && c4_show_info} - name: Install python 3.9 diff --git a/.github/workflows/macosx.yml b/.github/workflows/macosx.yml index 14765e11f..a3fee8efe 100644 --- a/.github/workflows/macosx.yml +++ b/.github/workflows/macosx.yml @@ -23,30 +23,6 @@ env: NUM_JOBS_BUILD: # 4 -# ubuntu-20.04: -# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md -# gcc: 7.5.0, 8.4.0, 9.3.0, 10.2.0 -# clang: 8.0.1, 9.0.1, 10.0.0 -# ubuntu-18.04: -# # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md -# gcc: 7.5.0, 8.4.0, 9.3.0, 10.1.0 -# clang: 6.0.0, 8.0.0, 9.0.0 -# macos-11.0: macOS Big Sur 11.0 -# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md -# Xcode 12.1 11.7 -# clang/LLVM 10.0.1 -# gcc-8 gcc-9 -# macos-10.15: macOS Catalina 10.15 -# # https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md -# Xcode 12.1 11.7 -# clang/LLVM 11.0.0 -# gcc-8 gcc-9 -# windows-2019: -# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md -# vs2019 -# windows-2016: -# # https://github.com/actions/virtual-environments/blob/main/images/win/Windows2016-Readme.md -# vs2017 jobs: #---------------------------------------------------------------------------- @@ -61,20 +37,15 @@ jobs: fail-fast: false matrix: include: - - {std: 11, cxx: xcode, xcver: 13, bt: Debug , os: macos-11, bitlinks: shared64 static64} - - {std: 11, cxx: xcode, xcver: 13, bt: Release, os: macos-11, bitlinks: shared64 static64} - - {std: 17, cxx: xcode, xcver: 13, bt: Debug , os: macos-11, bitlinks: shared64 static64} - - {std: 17, cxx: xcode, xcver: 13, bt: Release, os: macos-11, bitlinks: shared64 static64} + - {std: 11, cxx: xcode, xcver: 15, bt: Debug , os: macos-13, bitlinks: shared64 static64} + - {std: 11, cxx: xcode, xcver: 15, bt: Release, os: macos-13, bitlinks: shared64 static64} + - {std: 17, cxx: xcode, xcver: 15, bt: Debug , os: macos-13, bitlinks: shared64 static64} + - {std: 17, cxx: xcode, xcver: 15, bt: Release, os: macos-13, bitlinks: shared64 static64} # - - {std: 11, cxx: xcode, xcver: 12, bt: Debug , os: macos-11, bitlinks: shared64 static64} - - {std: 11, cxx: xcode, xcver: 12, bt: Release, os: macos-11, bitlinks: shared64 static64} - - {std: 17, cxx: xcode, xcver: 12, bt: Debug , os: macos-11, bitlinks: shared64 static64} - - {std: 17, cxx: xcode, xcver: 12, bt: Release, os: macos-11, bitlinks: shared64 static64} - # - - {std: 11, cxx: xcode, xcver: 11, bt: Debug , os: macos-11, bitlinks: shared64 static64} - - {std: 11, cxx: xcode, xcver: 11, bt: Release, os: macos-11, bitlinks: shared64 static64} - - {std: 17, cxx: xcode, xcver: 11, bt: Debug , os: macos-11, bitlinks: shared64 static64} - - {std: 17, cxx: xcode, xcver: 11, bt: Release, os: macos-11, bitlinks: shared64 static64} + - {std: 11, cxx: xcode, xcver: 14, bt: Debug , os: macos-13, bitlinks: shared64 static64} + - {std: 11, cxx: xcode, xcver: 14, bt: Release, os: macos-13, bitlinks: shared64 static64} + - {std: 17, cxx: xcode, xcver: 14, bt: Debug , os: macos-13, bitlinks: shared64 static64} + - {std: 17, cxx: xcode, xcver: 14, bt: Release, os: macos-13, bitlinks: shared64 static64} env: {STD: "${{matrix.std}}", CXX_: "${{matrix.cxx}}", BT: "${{matrix.bt}}", BITLINKS: "${{matrix.bitlinks}}", VG: "${{matrix.vg}}", SAN: "${{matrix.san}}", LINT: "${{matrix.lint}}", OS: "${{matrix.os}}"} steps: - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 16ee6a5f8..c64856df1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -132,7 +132,7 @@ jobs: - {name: Ubuntu 20.04 deb , sfxg: unix64.deb, sfxp: ubuntu-20.04.deb , gen: DEB , mime: vnd.debian.binary-package, os: ubuntu-20.04 } #- {name: Ubuntu 18.04 deb , sfxg: unix64.deb, sfxp: ubuntu-18.04.deb , gen: DEB , mime: vnd.debian.binary-package, os: ubuntu-18.04 } - {name: Windows VS2019 zip, sfxg: win64.zip , sfxp: windows-vs2019.zip , gen: ZIP , mime: zip , os: windows-2019, cxx: vs2019} - - {name: MacOSX sh , sfxg: apple64.sh, sfxp: macosx-xcode.sh , gen: STGZ , mime: x-sh , os: macos-11.0 , cxx: xcode } + - {name: MacOSX sh , sfxg: apple64.sh, sfxp: macosx-xcode.sh , gen: STGZ , mime: x-sh , os: macos-13 , cxx: xcode } steps: - {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} - name: Download vars.sh diff --git a/ext/c4core b/ext/c4core index 7aba1e111..080475979 160000 --- a/ext/c4core +++ b/ext/c4core @@ -1 +1 @@ -Subproject commit 7aba1e1112e4e0cabdfd653b893053969e5c3c20 +Subproject commit 0804759793c25006fbe144a42b0a175287e8f6d5