From 11b135b3406fad701e2978cd5e63f96e737bdbe6 Mon Sep 17 00:00:00 2001 From: joshavant <830519+joshavant@users.noreply.github.com> Date: Tue, 17 Mar 2026 21:03:02 -0500 Subject: [PATCH] CI: stabilize extension-fast representative selection --- .github/workflows/ci.yml | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f04f933f64a..2894b47eb1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -143,9 +143,19 @@ jobs: let reason = extensionIds.length > 0 ? "changed-extensions" : "none"; if (extensionIds.length === 0 && extensionFastInfraChanged) { + const allExtensionIds = listAvailableExtensionIds(); + const preferredRepresentativeExtensions = ["memory-lancedb", "line"]; + const orderedExtensionIds = [ + ...preferredRepresentativeExtensions.filter((extensionId) => + allExtensionIds.includes(extensionId), + ), + ...allExtensionIds.filter( + (extensionId) => !preferredRepresentativeExtensions.includes(extensionId), + ), + ]; let extensionCandidate = ""; let channelCandidate = ""; - for (const extensionId of listAvailableExtensionIds()) { + for (const extensionId of orderedExtensionIds) { const plan = resolveExtensionTestPlan({ targetArg: extensionId, cwd: process.cwd() }); if (plan.testFiles.length === 0) { continue; @@ -342,10 +352,21 @@ jobs: import { appendFileSync } from "node:fs"; import { listAvailableExtensionIds, resolveExtensionTestPlan } from "./scripts/test-extension.mjs"; + const allExtensionIds = listAvailableExtensionIds(); + const preferredRepresentativeExtensions = ["memory-lancedb", "line"]; + const orderedExtensionIds = [ + ...preferredRepresentativeExtensions.filter((extensionId) => + allExtensionIds.includes(extensionId), + ), + ...allExtensionIds.filter( + (extensionId) => !preferredRepresentativeExtensions.includes(extensionId), + ), + ]; + let extensionFile = ""; let channelFile = ""; - for (const extensionId of listAvailableExtensionIds()) { + for (const extensionId of orderedExtensionIds) { const plan = resolveExtensionTestPlan({ targetArg: extensionId, cwd: process.cwd() }); if (plan.testFiles.length === 0) { continue;