From 3df4c4b10d440857ab48a6301dd7841cfdb04097 Mon Sep 17 00:00:00 2001 From: Paul Bakaus Date: Tue, 25 Aug 2026 12:07:03 -0700 Subject: [PATCH] Simplify CI test plan routing Collapse the nightly alternate plan into the shared event routing while preserving every GitHub output and schedule behavior. Strengthen the nightly characterization for all deterministic suites.\n\nAI assistance: prepared by OpenAI Codex under maintainer pbakaus's standing scheduled-refactor authorization. --- scripts/ci-test-plan.mjs | 36 ++++++++++++------------------------ tests/ci-test-plan.test.mjs | 2 ++ 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/scripts/ci-test-plan.mjs b/scripts/ci-test-plan.mjs index bc06cdf7a..39764af77 100644 --- a/scripts/ci-test-plan.mjs +++ b/scripts/ci-test-plan.mjs @@ -12,32 +12,20 @@ const localNoChanges = !eventName && !process.env.CI_CHANGED_FILES; // (skill-behavior, accept-cleanup, deepseek), every single night. const isSchedule = eventName === 'schedule'; const changedFiles = localNoChanges || isSchedule ? [] : getChangedFiles(); -const forceDeterministic = localNoChanges || eventName === 'push' || eventName === 'workflow_dispatch'; +const forceDeterministic = localNoChanges || isSchedule || eventName === 'push' || eventName === 'workflow_dispatch'; const forceOptIn = eventName === 'workflow_dispatch'; -const plan = isSchedule - ? { - core: true, - detector: true, - live: true, - framework: true, - cli_remote_e2e: false, - live_e2e: true, - live_e2e_accept_cleanup: false, - skill_behavior: false, - live_svelte_adapter_deepseek: false, - } - : { - core: true, - detector: forceDeterministic || matchesSuiteTriggers('detector', changedFiles), - live: forceDeterministic || matchesSuiteTriggers('live', changedFiles), - framework: forceDeterministic || matchesSuiteTriggers('framework', changedFiles), - cli_remote_e2e: forceOptIn, - live_e2e: forceOptIn || matchesSuiteTriggers('live-e2e', changedFiles), - live_e2e_accept_cleanup: forceOptIn || matchesSuiteTriggers('live-e2e-accept-cleanup', changedFiles), - skill_behavior: forceOptIn || matchesSuiteTriggers('skill-behavior', changedFiles), - live_svelte_adapter_deepseek: forceOptIn || matchesSuiteTriggers('live-svelte-adapter-deepseek', changedFiles), - }; +const plan = { + core: true, + detector: forceDeterministic || matchesSuiteTriggers('detector', changedFiles), + live: forceDeterministic || matchesSuiteTriggers('live', changedFiles), + framework: forceDeterministic || matchesSuiteTriggers('framework', changedFiles), + cli_remote_e2e: forceOptIn, + live_e2e: isSchedule || forceOptIn || matchesSuiteTriggers('live-e2e', changedFiles), + live_e2e_accept_cleanup: forceOptIn || matchesSuiteTriggers('live-e2e-accept-cleanup', changedFiles), + skill_behavior: forceOptIn || matchesSuiteTriggers('skill-behavior', changedFiles), + live_svelte_adapter_deepseek: forceOptIn || matchesSuiteTriggers('live-svelte-adapter-deepseek', changedFiles), +}; writeGithubOutputs(plan); printSummary(plan, changedFiles); diff --git a/tests/ci-test-plan.test.mjs b/tests/ci-test-plan.test.mjs index d8b33fe72..2a9c16124 100644 --- a/tests/ci-test-plan.test.mjs +++ b/tests/ci-test-plan.test.mjs @@ -103,7 +103,9 @@ describe('ci-test-plan', () => { assert.equal(outputs.live_svelte_adapter_deepseek, 'false'); assert.equal(outputs.cli_remote_e2e, 'false'); assert.equal(outputs.core, 'true'); + assert.equal(outputs.detector, 'true'); assert.equal(outputs.live, 'true'); + assert.equal(outputs.framework, 'true'); }); });