Add basic Gitea Actions CI workflow #6

Merged
andrew merged 4 commits from weaselbot/weaseldb:weaselbot/issue-5 into main 2026-06-30 20:36:38 +00:00
4 Commits
Author SHA1 Message Date
weaselbot ac491c2174 fix weaseljson public header include path
CI / pre-commit (pull_request) Successful in 56s
CI / build (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, clang-arm64, ubuntu-latest-arm64) (pull_request) Successful in 2m25s
CI / build (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, clang-amd64, ubuntu-latest-amd64) (pull_request) Successful in 2m52s
CI / build (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc-arm64, ubuntu-latest-arm64) (pull_request) Successful in 2m45s
CI / build (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc-amd64, ubuntu-latest-amd64) (pull_request) Successful in 3m7s
weaseljson installs its public header as

  ${prefix}/include/weaseljson/weaseljson.h

and exports INTERFACE_INCLUDE_DIRECTORIES as

  ${prefix}/include/weaseljson

so consumers must include the header as <weaseljson.h>. The previous
weaseldb code used <weaseljson/weaseljson.h>, which only worked when a
system copy of weaseljson happened to be reachable via the compiler's
default include search path (e.g. /usr/include). In CI, where weaseljson
is built and installed to a non-system prefix, the build failed with:

  fatal error: 'weaseljson/weaseljson.h' file not found

Use the include path advertised by the weaseljson CMake target.
2026-06-30 16:15:18 -04:00
weaselbot 7ffecdda7d ci: install gperf in CI workflow
CI / pre-commit (pull_request) Successful in 55s
CI / build (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, clang-arm64, ubuntu-latest-arm64) (pull_request) Failing after 2m7s
CI / build (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, clang-amd64, ubuntu-latest-amd64) (pull_request) Failing after 2m48s
CI / build (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc-arm64, ubuntu-latest-arm64) (pull_request) Failing after 2m27s
CI / build (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc-amd64, ubuntu-latest-amd64) (pull_request) Failing after 2m56s
The build requires gperf to generate src/json_tokens.cpp from the
.gperf source. The CI jobs were failing at CMake configure time with:

  CMake Error at CMakeLists.txt:108 (find_program):
    Could not find GPERF_EXECUTABLE using the following names: gperf

Add gperf to the apt-get install step so all build dependencies are
present on the runners.
2026-06-30 15:59:17 -04:00
weaselbot 4b168c8688 Add basic Gitea Actions CI workflow
CI / pre-commit (pull_request) Successful in 56s
CI / build (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, clang-arm64, ubuntu-latest-arm64) (pull_request) Failing after 1m16s
CI / build (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc-arm64, ubuntu-latest-arm64) (pull_request) Failing after 1m27s
CI / build (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, clang-amd64, ubuntu-latest-amd64) (pull_request) Failing after 1m55s
CI / build (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc-amd64, ubuntu-latest-amd64) (pull_request) Failing after 1m47s
Run pre-commit checks and build/test the project on clang and gcc for
both amd64 and arm64. weaseljson is built and installed locally because
weaseldb depends on it via find_package.
2026-06-30 15:23:25 -04:00
weaselbot ad2650b0a6 Switch llhttp FetchContent to git repository
The tarball download redirects to codeload.github.com, which can be
unreliable in restricted network environments. Fetching the same release
via git uses github.com directly and pins the exact commit.
2026-06-30 15:23:23 -04:00