aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/ryml/.github/workflows/samples.yml
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/ryml/.github/workflows/samples.yml
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/ryml/.github/workflows/samples.yml')
-rw-r--r--thirdparty/ryml/.github/workflows/samples.yml60
1 files changed, 60 insertions, 0 deletions
diff --git a/thirdparty/ryml/.github/workflows/samples.yml b/thirdparty/ryml/.github/workflows/samples.yml
new file mode 100644
index 000000000..d4ad65494
--- /dev/null
+++ b/thirdparty/ryml/.github/workflows/samples.yml
@@ -0,0 +1,60 @@
+name: samples
+
+defaults:
+ run:
+ # Use a bash shell so we can use the same syntax for environment variable
+ # access regardless of the host operating system
+ shell: bash -e -x {0}
+
+on:
+ # https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
+ workflow_dispatch:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+
+env:
+ PROJ_PFX_TARGET: ryml-
+ PROJ_PFX_CMAKE: RYML_
+ CMAKE_FLAGS: -DRYML_TEST_SUITE=ON
+ NUM_JOBS_BUILD: # 4
+
+jobs:
+
+ #----------------------------------------------------------------------------
+ samples:
+ if: |
+ (!contains(github.event.head_commit.message, 'skip all')) ||
+ (!contains(github.event.head_commit.message, 'skip samples')) ||
+ contains(github.event.head_commit.message, 'only samples')
+ continue-on-error: true
+ runs-on: ${{matrix.os}}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - {bt: Debug , os: ubuntu-20.04}
+ - {bt: Release, os: ubuntu-20.04}
+ - {bt: Debug , os: windows-2019}
+ - {bt: Release, os: windows-2019}
+ - {bt: Debug , os: macos-latest}
+ - {bt: Release, os: macos-latest}
+ 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}}",
+ CMANY: ON, RYMLSHA: "${{github.event.pull_request.head.sha}}" }
+ steps:
+ - {name: checkout, uses: actions/checkout@v3, with: {submodules: recursive, fetch-depth: 0 } } # use fetch-depth to ensure all tags are fetched
+ - {name: python3, uses: actions/setup-python@v4, with: {python-version: 3.7}}
+ - {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: singleheader, run: cd samples/singleheader && ./run.sh $BT }
+ - {name: singleheaderlib-static, run: cd samples/singleheaderlib && ./run_static.sh $BT }
+ - {name: singleheaderlib-shared, run: cd samples/singleheaderlib && ./run_shared.sh $BT }
+ - {name: add_subdirectory, run: cd samples/add_subdirectory && ./run.sh $BT }
+ - {name: find_package, run: cd samples/find_package && ./run.sh $BT }
+ - {name: custom_c4core, run: cd samples/custom_c4core && ./run.sh $BT }
+ - {name: fetch_content, run: cd samples/fetch_content && ./run.sh $BT $RYMLSHA }