Add basic Gitea Actions CI workflow (#6)
CI / pre-commit (push) Successful in 56s
CI / build (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, clang-arm64, ubuntu-latest-arm64) (push) Successful in 2m24s
CI / build (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++, clang-amd64, ubuntu-latest-amd64) (push) Successful in 2m53s
CI / build (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc-arm64, ubuntu-latest-arm64) (push) Successful in 2m44s
CI / build (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc-amd64, ubuntu-latest-amd64) (push) Successful in 3m9s

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.

Reviewed-on: #6
Co-authored-by: Weaselbot <weaselbot@weaselab.dev>
Co-committed-by: Weaselbot <weaselbot@weaselab.dev>
This commit was merged in pull request #6.
This commit is contained in:
2026-06-30 20:36:37 +00:00
committed by andrew
parent 6219592620
commit a053b92911
3 changed files with 73 additions and 5 deletions
+69
View File
@@ -0,0 +1,69 @@
name: CI
on: [push, pull_request]
jobs:
pre-commit:
runs-on: ubuntu-latest-amd64
steps:
- uses: actions/checkout@v4
- name: Install pre-commit
run: pipx install pre-commit
- name: Run pre-commit
run: ~/.local/bin/pre-commit run --all-files --show-diff-on-failure
build:
strategy:
fail-fast: false
matrix:
include:
- name: clang-amd64
runner: ubuntu-latest-amd64
cmake_args: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
- name: clang-arm64
runner: ubuntu-latest-arm64
cmake_args: -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
- name: gcc-amd64
runner: ubuntu-latest-amd64
cmake_args: -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
- name: gcc-arm64
runner: ubuntu-latest-arm64
cmake_args: -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
with:
path: weaseldb
- name: Checkout weaseljson
uses: actions/checkout@v4
with:
repository: weaselab/weaseljson
path: weaseljson
- name: Install deps
run: |
sudo apt-get update
sudo apt-get install -y build-essential clang cmake gperf
- name: Build and install weaseljson
run: |
cmake -S weaseljson -B weaseljson/build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$(pwd)/weaseljson/install"
cmake --build weaseljson/build -j "$(nproc)"
cmake --install weaseljson/build
- name: Build weaseldb
run: |
cmake -S weaseldb -B weaseldb/build ${{ matrix.cmake_args }} \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DCMAKE_PREFIX_PATH="$(pwd)/weaseljson/install"
cmake --build weaseldb/build -j "$(nproc)"
- name: Test
run: |
cd weaseldb/build
ctest --output-on-failure -j "$(nproc)" --timeout 90
+3 -4
View File
@@ -80,10 +80,9 @@ FetchContent_MakeAvailable(simdutf)
FetchContent_Declare(
llhttp
URL "https://github.com/nodejs/llhttp/archive/refs/tags/release/v9.2.1.tar.gz"
URL_HASH
SHA256=3c163891446e529604b590f9ad097b2e98b5ef7e4d3ddcf1cf98b62ca668f23e
DOWNLOAD_EXTRACT_TIMESTAMP ON)
GIT_REPOSITORY https://github.com/nodejs/llhttp.git
GIT_TAG 610a87d755f6bae466cd871c2ba97574ccac5483 # release/v9.2.1
)
set(BUILD_SHARED_LIBS
OFF
CACHE INTERNAL "")
+1 -1
View File
@@ -3,7 +3,7 @@
#include <memory>
#include <simdutf.h>
#include <weaseljson/weaseljson.h>
#include <weaseljson.h>
#include "commit_request_parser.hpp"
#include "json_token_enum.hpp"