9090 run : pnpm lint
9191 - name : Check types
9292 run : pnpm check-types
93+ - name : Validate Code QA workflow
94+ run : pnpm test:code-qa-ci
9395 - name : Model-check task lifecycle protocols
9496 run : pnpm lifecycle:model-check
9597 - name : Validate MCP OAuth integration
@@ -135,11 +137,11 @@ jobs:
135137 - os : ubuntu-latest
136138 name : ubuntu-latest
137139 codecov-flag : ubuntu
138- upload -coverage : true
140+ collect -coverage : true
139141 - os : windows-latest
140142 name : windows-latest
141143 codecov-flag : windows
142- upload -coverage : false
144+ collect -coverage : false
143145 steps :
144146 - name : Checkout code
145147 uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -155,31 +157,51 @@ jobs:
155157 ${{ runner.os }}-turbo-${{ hashFiles('**/pnpm-lock.yaml') }}-
156158 ${{ runner.os }}-turbo-
157159 - name : Run non-extension package coverage
160+ if : matrix.collect-coverage
158161 run : pnpm turbo run test:coverage --filter="!@roo-code/core" --filter="!zoo-code" --log-order grouped --output-logs new-only
162+ - name : Run non-extension package tests
163+ if : ${{ !matrix.collect-coverage }}
164+ run : pnpm turbo run test --filter="!@roo-code/core" --filter="!zoo-code" --log-order grouped --output-logs new-only
159165 - name : Run extension coverage lanes
166+ if : matrix.collect-coverage
160167 run : pnpm turbo run test:coverage:api test:coverage:core test:coverage:services test:coverage:misc test:coverage:tree-sitter --filter="zoo-code" --concurrency=2 --log-order grouped --output-logs new-only
168+ - name : Run extension unit tests
169+ if : ${{ !matrix.collect-coverage }}
170+ run : pnpm turbo run test:unit --filter="zoo-code" --log-order grouped --output-logs new-only
161171 - name : Verify extension coverage contract
172+ if : matrix.collect-coverage
162173 run : pnpm --dir src run verify:coverage-contract
163174 - name : Run extension dist smoke test
164175 run : pnpm turbo run test:dist --filter="zoo-code" --log-order grouped --output-logs new-only
165176 - name : Run core unit coverage
177+ if : matrix.collect-coverage
166178 run : pnpm turbo run test:coverage:unit --filter="@roo-code/core" --log-order grouped --output-logs new-only
179+ - name : Run core unit tests
180+ if : ${{ !matrix.collect-coverage }}
181+ run : pnpm turbo run test:unit --filter="@roo-code/core" --log-order grouped --output-logs new-only
167182 - name : Run core integration coverage
183+ if : matrix.collect-coverage
168184 run : pnpm turbo run test:coverage:integration --filter="@roo-code/core" --log-order grouped --output-logs new-only
185+ - name : Run core integration tests
186+ if : ${{ !matrix.collect-coverage }}
187+ run : pnpm turbo run test:integration --filter="@roo-code/core" --log-order grouped --output-logs new-only
169188 - name : Verify extension coverage reports
189+ if : matrix.collect-coverage
170190 run : |
171191 node src/scripts/verify-lcov.mjs src/coverage/api/lcov.info
172192 node src/scripts/verify-lcov.mjs src/coverage/core/lcov.info
173193 node src/scripts/verify-lcov.mjs src/coverage/services/lcov.info
174194 node src/scripts/verify-lcov.mjs src/coverage/misc/lcov.info
175195 node src/scripts/verify-lcov.mjs src/coverage/tree-sitter/lcov.info
176196 - name : Merge extension coverage reports
197+ if : matrix.collect-coverage
177198 run : |
178199 mkdir -p src/coverage/merged
179200 pnpm --dir src run merge:coverage
180201 node src/scripts/verify-lcov.mjs src/coverage/merged/lcov.info
181202 # Validate cache boundaries before publishing any new Turbo entries.
182203 - name : Verify coverage cache inputs
204+ if : matrix.collect-coverage
183205 run : pnpm --dir src run verify:coverage-cache-inputs
184206 - name : Save Turbo cache
185207 if : steps.turbo-cache.outputs.cache-hit != 'true'
@@ -197,7 +219,7 @@ jobs:
197219 # it. Core and webview reports retain their independent flags.
198220 # See https://docs.codecov.com/docs/flags
199221 - name : Upload non-core coverage to Codecov
200- if : matrix.upload -coverage
222+ if : matrix.collect -coverage
201223 uses : codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
202224 with :
203225 files : >-
@@ -209,31 +231,31 @@ jobs:
209231 flags : ${{ matrix.codecov-flag }}
210232 token : ${{ secrets.CODECOV_TOKEN }}
211233 - name : Upload webview JSDOM coverage to Codecov
212- if : matrix.upload -coverage
234+ if : matrix.collect -coverage
213235 uses : codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
214236 with :
215237 files : webview-ui/coverage/lcov.info
216238 disable_search : true
217239 flags : webview-ui
218240 token : ${{ secrets.CODECOV_TOKEN }}
219241 - name : Upload core unit coverage to Codecov
220- if : matrix.upload -coverage
242+ if : matrix.collect -coverage
221243 uses : codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
222244 with :
223245 files : packages/core/coverage/unit/lcov.info
224246 disable_search : true
225247 flags : ${{ matrix.codecov-flag }},core-unit
226248 token : ${{ secrets.CODECOV_TOKEN }}
227249 - name : Upload core integration coverage to Codecov
228- if : matrix.upload -coverage
250+ if : matrix.collect -coverage
229251 uses : codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
230252 with :
231253 files : packages/core/coverage/integration/lcov.info
232254 disable_search : true
233255 flags : ${{ matrix.codecov-flag }},core-integration
234256 token : ${{ secrets.CODECOV_TOKEN }}
235257 - name : Upload coverage reports to GitHub
236- if : matrix.upload -coverage
258+ if : matrix.collect -coverage
237259 uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
238260 with :
239261 name : coverage-reports-${{ matrix.name }}
0 commit comments