name: CI on: [push, pull_request] jobs: build-and-test: runs-on: ubuntu-latest container: gitea.tap-tap.win/taptap/fastsync-ci:v6 steps: - name: Checkout uses: actions/checkout@v4 - name: Configure run: cmake -B build -S . - name: Build run: cmake --build build -j$(nproc) - name: Unit Tests run: ./build/tests - name: Integration Tests run: python3 -m pytest tests/ -v --tb=short sanitizer: runs-on: ubuntu-latest container: gitea.tap-tap.win/taptap/fastsync-ci:v6 steps: - name: Checkout uses: actions/checkout@v4 - name: Configure with ASan + UBSan run: > cmake -B build -S . -DCMAKE_C_FLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer -g" -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address,undefined" - name: Build run: cmake --build build -j$(nproc) - name: Unit Tests run: ./build/tests - name: Integration Tests run: python3 -m pytest tests/ -v --tb=short clang-tidy: runs-on: ubuntu-latest container: gitea.tap-tap.win/taptap/fastsync-ci:v6 steps: - name: Checkout uses: actions/checkout@v4 - name: Configure (generate compile_commands.json) run: cmake -B build -S . - name: Run clang-tidy run: | find src/ -name '*.c' | xargs clang-tidy -p build \ --checks='-*,bugprone-*,clang-analyzer-*,misc-*,-misc-no-recursion' \ 2>&1 | tee clang-tidy-output.txt if grep -q "error:" clang-tidy-output.txt; then echo "clang-tidy found issues" exit 1 fi