Add Gitea Actions CI workflow that runs on every push and PR
Build with CMake, compile, and run all 7 unit test suites
Custom Docker image (fastsync-ci:v4) with gcc, g++, make, cmake, zstd, git, and Node.js pre-installed
Lower minimum CMake version from 4.1 to 3.22 (Ubuntu apt compatibility)
CI Pipeline Steps
Checkout code
CMake configure
Build with make
Run unit tests
All steps verified passing on the Gitea runner.
## Changes
- Add Gitea Actions CI workflow that runs on every push and PR
- Build with CMake, compile, and run all 7 unit test suites
- Custom Docker image (`fastsync-ci:v4`) with gcc, g++, make, cmake, zstd, git, and Node.js pre-installed
- Lower minimum CMake version from 4.1 to 3.22 (Ubuntu apt compatibility)
## CI Pipeline Steps
1. Checkout code
2. CMake configure
3. Build with make
4. Run unit tests
All steps verified passing on the Gitea runner.
.gitea/workflows/ci.yaml — Build + unit test pipeline on push/PR
Dockerfile — Ubuntu 24.04 image with gcc, cmake, zstd, nodejs
CMakeLists.txt — cmake_minimum_required lowered from 4.1 to 3.22
What looks good
Clean, minimal workflow — configure, build, test
Custom Docker image avoids repeated apt-get in CI runs
Node.js included for actions/checkout@v4
apt lists cleaned up in Dockerfile
CMake 3.22 is compatible with Ubuntu 24.04's packaged cmake
Minor suggestions (non-blocking)
CMakeLists.txt: The downgrade from 4.1 to 3.22 is large. If no CMake 4.x features are used, this is fine. Consider adding a comment explaining the minimum version rationale.
Dockerfile: No version pinning for cmake/zstd packages. Builds may break if upstream changes. Consider pinning or using a hash.
CI workflow: Push + PR triggers can cause duplicate runs for same-repo PRs. Consider branches: [main] filter on push to only test merges.
No integration tests: test.py is not run in CI. Consider adding a separate job for it (with network setup).
Safe to merge.
## PR Review
**Verdict: PASS** — Clean CI setup, minor suggestions
**Files reviewed:** 3 (ci.yaml, Dockerfile, CMakeLists.txt)
---
### Changes
1. **`.gitea/workflows/ci.yaml`** — Build + unit test pipeline on push/PR
2. **`Dockerfile`** — Ubuntu 24.04 image with gcc, cmake, zstd, nodejs
3. **`CMakeLists.txt`** — cmake_minimum_required lowered from 4.1 to 3.22
### What looks good
- Clean, minimal workflow — configure, build, test
- Custom Docker image avoids repeated apt-get in CI runs
- Node.js included for `actions/checkout@v4`
- apt lists cleaned up in Dockerfile
- CMake 3.22 is compatible with Ubuntu 24.04's packaged cmake
### Minor suggestions (non-blocking)
- **CMakeLists.txt**: The downgrade from 4.1 to 3.22 is large. If no CMake 4.x features are used, this is fine. Consider adding a comment explaining the minimum version rationale.
- **Dockerfile**: No version pinning for cmake/zstd packages. Builds may break if upstream changes. Consider pinning or using a hash.
- **CI workflow**: Push + PR triggers can cause duplicate runs for same-repo PRs. Consider `branches: [main]` filter on push to only test merges.
- **No integration tests**: `test.py` is not run in CI. Consider adding a separate job for it (with network setup).
Safe to merge.
TapTap
merged commit 70ab76fe90 into main2026-07-18 15:52:07 +02: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.
Changes
fastsync-ci:v4) with gcc, g++, make, cmake, zstd, git, and Node.js pre-installedCI Pipeline Steps
All steps verified passing on the Gitea runner.
PR Review
Verdict: PASS — Clean CI setup, minor suggestions
Files reviewed: 3 (ci.yaml, Dockerfile, CMakeLists.txt)
Changes
.gitea/workflows/ci.yaml— Build + unit test pipeline on push/PRDockerfile— Ubuntu 24.04 image with gcc, cmake, zstd, nodejsCMakeLists.txt— cmake_minimum_required lowered from 4.1 to 3.22What looks good
actions/checkout@v4Minor suggestions (non-blocking)
branches: [main]filter on push to only test merges.test.pyis not run in CI. Consider adding a separate job for it (with network setup).Safe to merge.