@@ -21,7 +21,7 @@ permissions:
2121 contents : write
2222
2323jobs :
24- # ── Step 1: Lint (clang-format + cppcheck, no clang-tidy) ────
24+ # ── Step 1: Lint (clang-format + cppcheck) ─────────────── ────
2525 lint :
2626 runs-on : ubuntu-latest
2727 steps :
@@ -54,18 +54,10 @@ jobs:
5454 - name : Add cppcheck to PATH
5555 run : echo "/opt/cppcheck/bin" >> "$GITHUB_PATH"
5656
57- - name : Verify versions
58- run : |
59- echo "clang-format: $(clang-format-20 --version)"
60- echo "cppcheck: $(cppcheck --version)"
61-
62- - name : clang-format
63- run : make -f Makefile.cbm lint-format CLANG_FORMAT=clang-format-20
57+ - name : Lint
58+ run : scripts/lint.sh CLANG_FORMAT=clang-format-20
6459
65- - name : cppcheck
66- run : make -f Makefile.cbm lint-cppcheck
67-
68- # ── Step 2: Unit tests (ASan + UBSan) ────────────────────────
60+ # ── Step 2: Unit tests (ASan + UBSan) ───────────────────────
6961 test :
7062 needs : [lint]
7163 strategy :
@@ -96,10 +88,10 @@ jobs:
9688 if : startsWith(matrix.os, 'ubuntu')
9789 run : sudo apt-get update && sudo apt-get install -y libsqlite3-dev zlib1g-dev
9890
99- - name : Run C tests (ASan + UBSan)
100- run : make -j$(nproc 2>/dev/null || sysctl -n hw.ncpu) -f Makefile.cbm test CC=${{ matrix.cc }} CXX=${{ matrix.cxx }}
91+ - name : Test
92+ run : scripts/ test.sh CC=${{ matrix.cc }} CXX=${{ matrix.cxx }}
10193
102- # ── Step 3: Build binaries (standard + UI, all OS) ───────────
94+ # ── Step 3: Build binaries (standard + UI, all OS) ──────────
10395 build-unix :
10496 needs : [test]
10597 strategy :
@@ -138,27 +130,15 @@ jobs:
138130 node-version : " 22"
139131
140132 - name : Build standard binary
141- env :
142- VERSION : ${{ inputs.version }}
143- run : |
144- CLEAN_VERSION="${VERSION#v}"
145- make -j$(nproc 2>/dev/null || sysctl -n hw.ncpu) -f Makefile.cbm cbm \
146- CC=${{ matrix.cc }} CXX=${{ matrix.cxx }} \
147- CFLAGS_EXTRA="-DCBM_VERSION=\"\\\"$CLEAN_VERSION\\\"\""
133+ run : scripts/build.sh --version ${{ inputs.version }} CC=${{ matrix.cc }} CXX=${{ matrix.cxx }}
148134
149135 - name : Archive standard binary
150136 run : |
151137 tar -czf codebase-memory-mcp-${{ matrix.goos }}-${{ matrix.goarch }}.tar.gz \
152138 -C build/c codebase-memory-mcp
153139
154140 - name : Build UI binary
155- env :
156- VERSION : ${{ inputs.version }}
157- run : |
158- CLEAN_VERSION="${VERSION#v}"
159- make -j$(nproc 2>/dev/null || sysctl -n hw.ncpu) -f Makefile.cbm cbm-with-ui \
160- CC=${{ matrix.cc }} CXX=${{ matrix.cxx }} \
161- CFLAGS_EXTRA="-DCBM_VERSION=\"\\\"$CLEAN_VERSION\\\"\""
141+ run : scripts/build.sh --with-ui --version ${{ inputs.version }} CC=${{ matrix.cc }} CXX=${{ matrix.cxx }}
162142
163143 - name : Archive UI binary
164144 run : |
@@ -192,12 +172,7 @@ jobs:
192172
193173 - name : Build standard binary
194174 shell : msys2 {0}
195- env :
196- VERSION : ${{ inputs.version }}
197- run : |
198- CLEAN_VERSION="${VERSION#v}"
199- make -j$(nproc) -f Makefile.cbm cbm \
200- CFLAGS_EXTRA="-DCBM_VERSION=\"\\\"$CLEAN_VERSION\\\"\""
175+ run : scripts/build.sh --version ${{ inputs.version }}
201176
202177 - name : Archive standard binary
203178 shell : pwsh
@@ -207,12 +182,7 @@ jobs:
207182
208183 - name : Build UI binary
209184 shell : msys2 {0}
210- env :
211- VERSION : ${{ inputs.version }}
212- run : |
213- CLEAN_VERSION="${VERSION#v}"
214- make -j$(nproc) -f Makefile.cbm cbm-with-ui \
215- CFLAGS_EXTRA="-DCBM_VERSION=\"\\\"$CLEAN_VERSION\\\"\""
185+ run : scripts/build.sh --with-ui --version ${{ inputs.version }}
216186
217187 - name : Archive UI binary
218188 shell : pwsh
@@ -225,7 +195,7 @@ jobs:
225195 name : binaries-windows-amd64
226196 path : " *.zip"
227197
228- # ── Step 4: Smoke test every binary ──────────────────────────
198+ # ── Step 4: Smoke test every binary ─────────────────────────
229199 smoke-unix :
230200 needs : [build-unix]
231201 strategy :
@@ -291,7 +261,7 @@ jobs:
291261 shell : msys2 {0}
292262 run : scripts/smoke-test.sh ./codebase-memory-mcp.exe
293263
294- # ── Step 5: Create GitHub release ────────────────────────────
264+ # ── Step 5: Create GitHub release ───────────────────────────
295265 release :
296266 needs : [smoke-unix, smoke-windows]
297267 runs-on : ubuntu-latest
0 commit comments