fix(release-gate): skip duplicate CI work and stop live LLM blowups
Shared paths like db.mjs were pulling PAGE/DATA live agent suites into every hotfix. Keep those cases for actual page-data changes, resume passed suites on the same artifact, and fail fast on Docker/port issues instead of rerunning 100+ scenarios. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -54,6 +54,10 @@ test('critical paths expand mapped domains and unmapped paths block release', as
|
||||
critical.impact_groups,
|
||||
['AGENT', 'AUTH', 'CFG', 'CHAT', 'DATA', 'FILE', 'MS', 'PAGE'],
|
||||
);
|
||||
assert.equal(critical.live_llm_selected, false);
|
||||
assert.equal(critical.selected_ids.includes('DATA-01'), false);
|
||||
assert.equal(critical.selected_ids.includes('PAGE-01'), false);
|
||||
assert.equal(critical.selected_ids.includes('DATA-06'), true);
|
||||
assert.deepEqual(critical.full_gate_reasons, []);
|
||||
|
||||
assert.throws(
|
||||
@@ -73,6 +77,49 @@ test('critical paths expand mapped domains and unmapped paths block release', as
|
||||
);
|
||||
});
|
||||
|
||||
test('chat image turn-scope does not expand the image-to-page live domain', async () => {
|
||||
const catalog = await loadScenarioCatalog();
|
||||
const selection = selectImpactScenarios({
|
||||
catalog,
|
||||
changedPaths: ['chat-image-turn-scope.mjs', 'wechat-mp.mjs'],
|
||||
});
|
||||
assert.equal(selection.impact_groups.includes('IMGPG'), false);
|
||||
assert.equal(selection.selected_ids.includes('PAGE-01'), false);
|
||||
assert.equal(selection.selected_ids.includes('DATA-01'), false);
|
||||
assert.equal(selection.selected_ids.includes('WX-01'), true);
|
||||
assert.equal(selection.selected_ids.includes('CHAT-01'), true);
|
||||
});
|
||||
|
||||
test('Page Data product code still selects live LLM DATA scenarios', async () => {
|
||||
const catalog = await loadScenarioCatalog();
|
||||
const selection = selectImpactScenarios({
|
||||
catalog,
|
||||
changedPaths: ['page-data-routes.mjs'],
|
||||
});
|
||||
assert.equal(selection.live_llm_selected, true);
|
||||
assert.equal(selection.selected_ids.includes('DATA-01'), true);
|
||||
assert.equal(selection.selected_ids.includes('DATA-06'), true);
|
||||
});
|
||||
|
||||
test('image-generation files still map to IMGPG', async () => {
|
||||
const catalog = await loadScenarioCatalog();
|
||||
const selection = selectImpactScenarios({
|
||||
catalog,
|
||||
changedPaths: ['mindspace-image-generation.mjs'],
|
||||
});
|
||||
assert.equal(selection.impact_groups.includes('IMGPG'), true);
|
||||
});
|
||||
|
||||
test('scenario fixtures are non-runtime and do not block mapping', async () => {
|
||||
const catalog = await loadScenarioCatalog();
|
||||
const selection = selectImpactScenarios({
|
||||
catalog,
|
||||
changedPaths: ['scenarios/ai-usage-survey.json', 'docs/branch-disposition.md'],
|
||||
});
|
||||
assert.equal(selection.strategy, 'core');
|
||||
assert.equal(selection.live_llm_selected, false);
|
||||
});
|
||||
|
||||
test('release policy changes use mapped REL and CFG domains without selecting the catalog', async () => {
|
||||
const catalog = await loadScenarioCatalog();
|
||||
const selection = selectImpactScenarios({
|
||||
|
||||
Reference in New Issue
Block a user