aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/robin-map/.github/workflows
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2025-11-07 14:49:13 +0100
committerGitHub Enterprise <[email protected]>2025-11-07 14:49:13 +0100
commit24e43a913f29ac3b314354e8ce5175f135bcc64f (patch)
treeca442937ceeb63461012b33a4576e9835099f106 /thirdparty/robin-map/.github/workflows
parentget oplog attachments (#622) (diff)
downloadzen-24e43a913f29ac3b314354e8ce5175f135bcc64f.tar.xz
zen-24e43a913f29ac3b314354e8ce5175f135bcc64f.zip
switch to xmake for package management (#611)
This change removes our dependency on vcpkg for package management, in favour of bringing some code in-tree in the `thirdparty` folder as well as using the xmake build-in package management feature. For the latter, all the package definitions are maintained in the zen repo itself, in the `repo` folder. It should now also be easier to build the project as it will no longer depend on having the right version of vcpkg installed, which has been a common problem for new people coming in to the codebase. Now you should only need xmake to build. * Bumps xmake requirement on github runners to 2.9.9 to resolve an issue where xmake on Windows invokes cmake with `v144` toolchain which does not exist * BLAKE3 is now in-tree at `thirdparty/blake3` * cpr is now in-tree at `thirdparty/cpr` * cxxopts is now in-tree at `thirdparty/cxxopts` * fmt is now in-tree at `thirdparty/fmt` * robin-map is now in-tree at `thirdparty/robin-map` * ryml is now in-tree at `thirdparty/ryml` * sol2 is now in-tree at `thirdparty/sol2` * spdlog is now in-tree at `thirdparty/spdlog` * utfcpp is now in-tree at `thirdparty/utfcpp` * xmake package repo definitions is in `repo` * implemented support for sanitizers. ASAN is supported on windows, TSAN, UBSAN, MSAN etc are supported on Linux/MacOS though I have not yet tested it extensively on MacOS * the zencore encryption implementation also now supports using mbedTLS which is used on MacOS, though for now we still use openssl on Linux * crashpad * bumps libcurl to 8.11.0 (from 8.8.0) which should address a rare build upload bug
Diffstat (limited to 'thirdparty/robin-map/.github/workflows')
-rw-r--r--thirdparty/robin-map/.github/workflows/ci.yml136
1 files changed, 136 insertions, 0 deletions
diff --git a/thirdparty/robin-map/.github/workflows/ci.yml b/thirdparty/robin-map/.github/workflows/ci.yml
new file mode 100644
index 000000000..96b698a66
--- /dev/null
+++ b/thirdparty/robin-map/.github/workflows/ci.yml
@@ -0,0 +1,136 @@
+name: CI
+
+on: [push, pull_request, release]
+
+jobs:
+ build:
+ strategy:
+ fail-fast: false
+ matrix:
+ config:
+ - {
+ name: linux-x64-gcc,
+ os: ubuntu-latest,
+ cxx: g++,
+ cmake-build-type: Release
+ }
+ - {
+ name: linux-x64-gcc-no-exceptions,
+ os: ubuntu-latest,
+ cxx: g++,
+ cxx-flags: -fno-exceptions,
+ cmake-build-type: Release
+ }
+ - {
+ name: linux-x64-clang,
+ os: ubuntu-latest,
+ cxx: clang++,
+ cmake-build-type: Release
+ }
+ - {
+ name: macos-x64-gcc,
+ os: macos-13,
+ cxx: g++,
+ cmake-build-type: Release
+ }
+ - {
+ name: macos-x64-clang,
+ os: macos-13,
+ cxx: clang++,
+ cmake-build-type: Release
+ }
+ - {
+ name: linux-x64-clang-sanitize,
+ os: ubuntu-latest,
+ cxx: clang++,
+ cxx-flags: "-fsanitize=address,undefined",
+ cmake-build-type: Release
+ }
+ - {
+ name: linux-x64-gcc-coverage,
+ os: ubuntu-latest,
+ cxx: g++,
+ cxx-flags: --coverage,
+ gcov-tool: gcov,
+ cmake-build-type: Debug
+ }
+ - {
+ name: windows-x64-vs-2019,
+ os: windows-2019,
+ cmake-build-type: Release,
+ cmake-generator: Visual Studio 16 2019,
+ cmake-platform: x64,
+ vcpkg-triplet: x64-windows-static-md
+ }
+ - {
+ name: windows-x86-vs-2019,
+ os: windows-2019,
+ cmake-build-type: Release,
+ cmake-generator: Visual Studio 16 2019,
+ cmake-platform: Win32,
+ vcpkg-triplet: x86-windows-static-md
+ }
+ - {
+ name: windows-x64-vs-2022,
+ os: windows-2022,
+ cmake-build-type: Release,
+ cmake-generator: Visual Studio 17 2022,
+ cmake-platform: x64,
+ vcpkg-triplet: x64-windows-static-md
+ }
+ - {
+ name: windows-x86-vs-2022,
+ os: windows-2022,
+ cmake-build-type: Release,
+ cmake-generator: Visual Studio 17 2022,
+ cmake-platform: Win32,
+ vcpkg-triplet: x86-windows-static-md
+ }
+ name: ${{matrix.config.name}}
+ runs-on: ${{matrix.config.os}}
+ steps:
+ - uses: actions/checkout@v2
+
+ # Windows
+ - name: Install boost (Windows)
+ run: vcpkg install boost-test:${{matrix.config.vcpkg-triplet}}
+ if: runner.os == 'Windows'
+
+ - name: Configure CMake (Windows)
+ run: cmake -G "${{matrix.config.cmake-generator}}" -A ${{matrix.config.cmake-platform}} -DCMAKE_BUILD_TYPE=${{matrix.config.cmake-build-type}} -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=${{matrix.config.vcpkg-triplet}} -S ${{github.workspace}}/tests -B ${{github.workspace}}/build
+ if: runner.os == 'Windows'
+
+ - name: Build (Windows)
+ run: cmake --build ${{github.workspace}}/build --config ${{matrix.config.cmake-build-type}} --verbose
+ if: runner.os == 'Windows'
+
+ - name: Test (Windows)
+ run: ${{github.workspace}}/build/${{matrix.config.cmake-build-type}}/tsl_robin_map_tests.exe
+ if: runner.os == 'Windows'
+
+ # Linux or macOS
+ - name: Install boost (Linux or macOS)
+ run: vcpkg install boost-test
+ if: runner.os == 'Linux' || runner.os == 'macOS'
+
+ - name: Configure CMake (Linux or macOS)
+ run: cmake -DCMAKE_BUILD_TYPE=${{matrix.config.cmake-build-type}} -DCMAKE_TOOLCHAIN_FILE="$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" -S ${{github.workspace}}/tests -B ${{github.workspace}}/build
+ env:
+ CXX: ${{matrix.config.cxx}}
+ CXXFLAGS: ${{matrix.config.cxx-flags}}
+ if: runner.os == 'Linux' || runner.os == 'macOS'
+
+ - name: Build (Linux or macOS)
+ run: cmake --build ${{github.workspace}}/build --verbose
+ if: runner.os == 'Linux' || runner.os == 'macOS'
+
+ - name: Test (Linux or macOS)
+ run: ${{github.workspace}}/build/tsl_robin_map_tests
+ if: runner.os == 'Linux' || runner.os == 'macOS'
+
+ - name: Coverage
+ run: |
+ sudo apt-get install -y lcov
+ lcov -c -b ${{github.workspace}}/include -d ${{github.workspace}}/build -o ${{github.workspace}}/coverage.info --no-external --gcov-tool ${{matrix.config.gcov-tool}}
+ bash <(curl -s https://codecov.io/bash) -f ${{github.workspace}}/coverage.info
+ if: ${{matrix.config.name == 'linux-x64-gcc-coverage'}}