mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-05 15:40:10 +00:00
- Implement weighted test distribution algorithm to balance shard execution times - Create automated shard optimization script that analyzes test complexity - Remove unnecessary sharding for fast test suites (mobile-chrome, chromium-0.5x, chromium-2x) - Update GitHub workflow to use optimized shard configuration - Add comprehensive sharding documentation The previous naive sharding caused shard 5 to take 9 minutes while others completed in 2-6 minutes. This was due to interaction.spec.ts containing 61 tests with 81 screenshot comparisons. New approach uses weighted distribution based on: - Number of tests per file - Screenshot comparison count - Test complexity and historical execution time Results: - Achieved ~4.5% imbalance (vs previous ~80%) - All chromium shards now complete in 3-4 minutes - Total CI time reduced from 9 minutes to ~4 minutes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
72 lines
1.7 KiB
TypeScript
72 lines
1.7 KiB
TypeScript
/**
|
|
* Auto-generated shard configuration for balanced test distribution
|
|
* Generated on: 2025-09-02T16:09:27.236Z
|
|
*/
|
|
|
|
export const OPTIMIZED_SHARDS = [
|
|
[
|
|
"interaction.spec.ts",
|
|
"selectionToolbox.spec.ts",
|
|
"chatHistory.spec.ts",
|
|
"litegraphEvent.spec.ts",
|
|
"versionMismatchWarnings.spec.ts"
|
|
],
|
|
[
|
|
"subgraph.spec.ts",
|
|
"sidebar/workflows.spec.ts",
|
|
"primitiveNode.spec.ts",
|
|
"bottomPanelShortcuts.spec.ts",
|
|
"nodeBadge.spec.ts",
|
|
"execution.spec.ts",
|
|
"rerouteNode.spec.ts",
|
|
"changeTracker.spec.ts",
|
|
"keybindings.spec.ts",
|
|
"userSelectView.spec.ts"
|
|
],
|
|
[
|
|
"widget.spec.ts",
|
|
"sidebar/nodeLibrary.spec.ts",
|
|
"nodeHelp.spec.ts",
|
|
"templates.spec.ts",
|
|
"featureFlags.spec.ts",
|
|
"copyPaste.spec.ts",
|
|
"loadWorkflowInMedia.spec.ts",
|
|
"actionbar.spec.ts",
|
|
"commands.spec.ts",
|
|
"minimap.spec.ts",
|
|
"workflowTabThumbnail.spec.ts"
|
|
],
|
|
[
|
|
"nodeSearchBox.spec.ts",
|
|
"rightClickMenu.spec.ts",
|
|
"colorPalette.spec.ts",
|
|
"useSettingSearch.spec.ts",
|
|
"graphCanvasMenu.spec.ts",
|
|
"domWidget.spec.ts",
|
|
"menu.spec.ts",
|
|
"backgroundImageUpload.spec.ts",
|
|
"customIcons.spec.ts",
|
|
"releaseNotifications.spec.ts"
|
|
],
|
|
[
|
|
"dialog.spec.ts",
|
|
"groupNode.spec.ts",
|
|
"nodeDisplay.spec.ts",
|
|
"remoteWidgets.spec.ts",
|
|
"extensionAPI.spec.ts",
|
|
"sidebar/queue.spec.ts",
|
|
"noteNode.spec.ts",
|
|
"browserTabTitle.spec.ts",
|
|
"graph.spec.ts",
|
|
"subgraph-rename-dialog.spec.ts"
|
|
]
|
|
]
|
|
|
|
export function getShardTests(shardIndex: number): string[] {
|
|
return OPTIMIZED_SHARDS[shardIndex - 1] || []
|
|
}
|
|
|
|
export function getShardPattern(shardIndex: number): string[] {
|
|
return getShardTests(shardIndex).map(test => `**/${test}`)
|
|
}
|