.github/workflows/ci.yml: fast lint jobs (clang-format, testserver
selftest, bootstrap.sh --check) that need no compiler; a gcc/clcang build
matrix and an ASan/UBSan + TSan sanitizer matrix that bootstrap via
tools/bootstrap.sh and run `ctest --preset {ci,dev,tsan}`; advisory
clang-tidy on changed files; and extension-lint + conformance jobs that
short-circuit to a passing "skipped" step until their lane lands, so they
can be marked required now. CMakePresets.json gains matching `tsan` and
`ci` test presets. .github/BRANCH_PROTECTION.md records the intended
required-checks policy (conformance required = the M0 exit gate).
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01HPPSGhiArbvQgwC2DNiURS
76 lines
2.2 KiB
JSON
76 lines
2.2 KiB
JSON
{
|
|
"version": 6,
|
|
"cmakeMinimumRequired": { "major": 3, "minor": 28, "patch": 0 },
|
|
"configurePresets": [
|
|
{
|
|
"name": "base",
|
|
"hidden": true,
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/build/${presetName}",
|
|
"cacheVariables": { "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }
|
|
},
|
|
{
|
|
"name": "dev",
|
|
"inherits": "base",
|
|
"displayName": "Debug + ASan/UBSan (default for all lanes)",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"CMAKE_CXX_FLAGS": "-fsanitize=address,undefined -fno-omit-frame-pointer -g",
|
|
"VELOX_BUILD_TESTS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "tsan",
|
|
"inherits": "base",
|
|
"displayName": "Debug + ThreadSanitizer (required for CORE and DAEMON)",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"CMAKE_CXX_FLAGS": "-fsanitize=thread -fno-omit-frame-pointer -g",
|
|
"VELOX_BUILD_TESTS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "release",
|
|
"inherits": "base",
|
|
"displayName": "RelWithDebInfo + LTO (benchmarks and packages)",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
|
"CMAKE_INTERPROCEDURAL_OPTIMIZATION": "ON",
|
|
"VELOX_BUILD_TESTS": "OFF"
|
|
}
|
|
},
|
|
{
|
|
"name": "ci",
|
|
"inherits": "dev",
|
|
"displayName": "CI build",
|
|
"cacheVariables": { "VELOX_BUILD_FUZZ": "ON" }
|
|
}
|
|
],
|
|
"buildPresets": [
|
|
{ "name": "dev", "configurePreset": "dev" },
|
|
{ "name": "tsan", "configurePreset": "tsan" },
|
|
{ "name": "release", "configurePreset": "release" },
|
|
{ "name": "ci", "configurePreset": "ci" }
|
|
],
|
|
"testPresets": [
|
|
{
|
|
"name": "dev",
|
|
"configurePreset": "dev",
|
|
"output": { "outputOnFailure": true },
|
|
"execution": { "noTestsAction": "error", "stopOnFailure": false }
|
|
},
|
|
{
|
|
"name": "tsan",
|
|
"configurePreset": "tsan",
|
|
"output": { "outputOnFailure": true },
|
|
"execution": { "noTestsAction": "error", "stopOnFailure": false }
|
|
},
|
|
{
|
|
"name": "ci",
|
|
"configurePreset": "ci",
|
|
"output": { "outputOnFailure": true },
|
|
"execution": { "noTestsAction": "error", "stopOnFailure": false }
|
|
}
|
|
]
|
|
}
|