From 4b168c86886373e46293186339b630463a1be47d Mon Sep 17 00:00:00 2001 From: Weaselbot Date: Tue, 30 Jun 2026 15:23:25 -0400 Subject: [PATCH] Add basic Gitea Actions CI workflow 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. --- .gitea/workflows/ci.yml | 69 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .gitea/workflows/ci.yml diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..ea2c7a9 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -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 + + - 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