ci: add build and unit test pipeline #17

Merged
TapTap merged 9 commits from actions into main 2026-07-18 15:52:07 +02:00
Owner

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.

## 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.
TapTap added 9 commits 2026-07-18 15:34:23 +02:00
add demo action
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 59s
33f70f7de3
ci: skip apt-get update for faster installs
CI / build-and-test (push) Failing after 2s
e7087d518b
ci: restore apt-get update for package resolution
CI / build-and-test (push) Successful in 2m16s
36da0d6adb
ci: add node.js to Docker image for checkout action
CI / build-and-test (push) Failing after 1s
5fe40a5242
ci: use v2 image tag to bypass runner cache
CI / build-and-test (push) Failing after 8s
cc09bedc07
ci: add make to Docker image, use v3 tag
CI / build-and-test (push) Failing after 10s
8c7ebbfe32
ci: add g++ and libc6-dev, use v4 image (verified locally)
CI / build-and-test (push) Successful in 4s
CI / build-and-test (pull_request) Successful in 4s
ed7f8ee56e
Author
Owner

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.

## 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 main 2026-07-18 15:52:07 +02:00
TapTap deleted branch actions 2026-07-18 15:52:10 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#17