Adds a Gitea Actions workflow that runs pre-commit checks and builds/tests the project on clang and gcc for both amd64 and arm64.
weaseljson is checked out, built, and installed locally because weaseldb depends on it via find_package(weaseljson REQUIRED).
Also switches the llhttp FetchContent declaration from a tarball URL to a git repository pinned to the same release commit. The tarball redirect goes through codeload.github.com, which can be blocked in restricted network environments; using git keeps the fetch on github.com.
Closes #5
Adds a Gitea Actions workflow that runs pre-commit checks and builds/tests the project on clang and gcc for both amd64 and arm64.
weaseljson is checked out, built, and installed locally because weaseldb depends on it via `find_package(weaseljson REQUIRED)`.
Also switches the llhttp FetchContent declaration from a tarball URL to a git repository pinned to the same release commit. The tarball redirect goes through codeload.github.com, which can be blocked in restricted network environments; using git keeps the fetch on github.com.
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.
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.
weaselbot
requested review from andrew 2026-06-30 19:23:41 +00:00
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.
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.
andrew
merged commit a053b92911 into main2026-06-30 20:36:38 +00:00
andrew
deleted branch weaselbot/issue-52026-06-30 20:36:39 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #5
Adds a Gitea Actions workflow that runs pre-commit checks and builds/tests the project on clang and gcc for both amd64 and arm64.
weaseljson is checked out, built, and installed locally because weaseldb depends on it via
find_package(weaseljson REQUIRED).Also switches the llhttp FetchContent declaration from a tarball URL to a git repository pinned to the same release commit. The tarball redirect goes through codeload.github.com, which can be blocked in restricted network environments; using git keeps the fetch on github.com.
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.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.