ci: use org-owned Kova benchmark

This commit is contained in:
Peter Steinberger
2026-05-03 12:57:27 +01:00
parent adc4fd453b
commit 0fbb06e6df
3 changed files with 9 additions and 3 deletions

View File

@@ -36,7 +36,7 @@ on:
default: false
type: boolean
kova_ref:
description: Kova Git ref to install
description: openclaw/Kova Git ref to install
required: false
default: 51947110f5cacb6ab2c0947594ea9628031c9fcf
type: string
@@ -51,6 +51,7 @@ concurrency:
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
OCM_VERSION: v0.2.15
KOVA_REPOSITORY: openclaw/Kova
PERFORMANCE_MODEL_ID: gpt-5.4
jobs:
@@ -157,7 +158,7 @@ jobs:
mkdir -p "$HOME/.local/bin" "$(dirname "$KOVA_SRC")"
curl -fsSL https://raw.githubusercontent.com/shakkernerd/ocm/main/install.sh \
| bash -s -- --version "$OCM_VERSION" --prefix "$HOME/.local" --force
git clone --filter=blob:none https://github.com/shakkernerd/Kova.git "$KOVA_SRC"
git clone --filter=blob:none "https://github.com/${KOVA_REPOSITORY}.git" "$KOVA_SRC"
git -C "$KOVA_SRC" checkout "$KOVA_REF"
cat > "$HOME/.local/bin/kova" <<EOF
#!/usr/bin/env bash

View File

@@ -137,7 +137,7 @@ gh workflow run openclaw-performance.yml --ref main -f profile=diagnostic -f rep
gh workflow run openclaw-performance.yml --ref main -f profile=smoke -f repeat=1 -f deep_profile=true -f live_gpt54=true
```
The workflow installs OCM from a pinned release and Kova from the pinned `kova_ref` input, then runs three lanes:
The workflow installs OCM from a pinned release and Kova from `openclaw/Kova` at the pinned `kova_ref` input, then runs three lanes:
- `mock-provider`: Kova diagnostic scenarios against a local-build runtime with deterministic fake OpenAI-compatible auth.
- `mock-deep-profile`: CPU/heap/trace profiling for startup, gateway, and agent-turn hotspots.

View File

@@ -4,6 +4,7 @@ import fs from "node:fs";
import os from "node:os";
import path from "node:path";
import { fileURLToPath, pathToFileURL } from "node:url";
import { collectRootPackageExcludedExtensionDirs } from "./lib/bundled-plugin-build-entries.mjs";
import { parsePackageRootArg } from "./lib/package-root-args.mjs";
import { installProcessWarningFilter } from "./process-warning-filter.mjs";
@@ -16,6 +17,7 @@ const { packageRoot } = parsePackageRootArg(
"OPENCLAW_BUNDLED_CHANNEL_SMOKE_ROOT",
);
const distExtensionsRoot = path.join(packageRoot, "dist", "extensions");
const excludedPackageExtensionDirs = collectRootPackageExcludedExtensionDirs({ cwd: packageRoot });
const installedLayoutEnv = "OPENCLAW_BUNDLED_CHANNEL_SMOKE_INSTALLED_LAYOUT";
function packageRootLooksInstalled(root) {
@@ -82,6 +84,9 @@ function collectBundledChannelEntryFiles() {
if (!packageJson.openclaw?.channel) {
continue;
}
if (excludedPackageExtensionDirs.has(dirent.name)) {
continue;
}
const extensionEntries =
Array.isArray(packageJson.openclaw.extensions) && packageJson.openclaw.extensions.length > 0