fix(ci): honor Kova performance report contracts (#103030)

This commit is contained in:
Peter Steinberger
2026-07-09 20:08:25 +01:00
committed by GitHub
parent 8656c3b357
commit 11fa0cf2d5
4 changed files with 32 additions and 5 deletions

View File

@@ -852,6 +852,10 @@ describe("scripts/lib/kova-report-gate.mjs", () => {
"rejects PARTIAL records with violations",
(report) => setAt(report, ["records", 0, "violations"], [{}]),
],
[
"rejects PARTIAL records with null violations",
(report) => setAt(report, ["records", 0, "violations"], null),
],
[
"rejects PARTIAL reports without sampled RSS",
(report) => deleteAt(report, ["performance", "groups", 0, "metrics", "peakRssMb"]),

View File

@@ -16,6 +16,11 @@ type WorkflowStep = {
type WorkflowJob = {
steps?: WorkflowStep[];
strategy?: {
matrix?: {
include?: Array<{ include_filters?: string }>;
};
};
};
type Workflow = {
@@ -107,6 +112,22 @@ describe("OpenClaw performance workflow", () => {
);
});
it("passes every configured scenario through one Kova include flag", () => {
const workflow = readWorkflow();
const includeFilters = workflow.jobs?.kova?.strategy?.matrix?.include?.map(
(lane) => lane.include_filters,
);
const runKova = findStep("Run Kova");
expect(includeFilters).toEqual([
"scenario:fresh-install,scenario:gateway-performance,scenario:bundled-plugin-startup,scenario:bundled-runtime-deps,scenario:agent-cold-warm-message",
"scenario:fresh-install,scenario:gateway-performance,scenario:agent-cold-warm-message",
"scenario:agent-cold-warm-message",
]);
expect(runKova.run).toContain('args+=(--include "$INCLUDE_FILTERS")');
expect(runKova.run).not.toContain("for filter in $INCLUDE_FILTERS");
});
it("installs local workspace packages beside the OCM root tarball", () => {
const configure = findStep("Configure OCM local workspace dependencies");