Skip to content

Conversation

@Skn0tt
Copy link
Member

@Skn0tt Skn0tt commented Dec 19, 2025

See #38604. Adds per-shard duration reporting to the merge reporter, and a visualisation of that data to HTML. In a next step, i'd like to add the heuristic from #38635 (comment), too.

Screenshot 2025-12-19 at 12 10 11

@Skn0tt Skn0tt self-assigned this Dec 19, 2025
@github-actions

This comment has been minimized.

@Skn0tt Skn0tt requested a review from dgozman January 5, 2026 12:23
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

const width = 800;

// Calculate left margin based on longest group name
// Rough estimate: 7 pixels per character at fontSize 12
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder whether you should make it two columns, let the titles column take as much space as it needs (say, up to 50%) and the bars column take the rest?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not exactly sure what you mean, but I allowed the titles to take up to 50% now.

const y = groupY + barIndex * (barHeight + barSpacing);
barIndex++;

const colors = ['var(--color-scale-yellow-3)', 'var(--color-scale-orange-4)'];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps we should have more? Have you tried this with 5 shards?

Copy link
Member Author

@Skn0tt Skn0tt Jan 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i've added one more colour. it's hard to find colours in our swatch that match well

return `${minutes}m ${seconds}s`;
};

export const GroupedBarChart = ({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This reminds me of timeline.tsx quite a lot!

Copy link
Member Author

@Skn0tt Skn0tt Jan 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe that was part of the training data 😁

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@Skn0tt Skn0tt requested a review from dgozman January 6, 2026 09:35
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

- `duration` <[int]> Test run duration in milliseconds.
- `shards` <[Array]<[Object]>> Only present on merged reports
- `shardIndex` ?<[int]> The index of the shard, one-based.
- `tag` ?<[Array]<[string]>> Bot [`property: TestConfig.tag`] that differentiates CI environments
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `tag` ?<[Array]<[string]>> Bot [`property: TestConfig.tag`] that differentiates CI environments
- `tag` ?<[Array]<[string]>> Global [`property: TestConfig.tag`] that differentiates CI environments

const bots: Record<string, number[]> = {};
for (const shard of shards) {
const botName = shard.tag.map(t => {
if (t.startsWith('@'))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why remove @? I think we should keep it to make things familiar.

workerIndex: number;
parallelIndex: number;
shardIndex: number;
shardIndex?: number;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we also update TeleTestResult.shardIndex definition to be undefined by default?

shardIndex?: number;

/**
* Bot tag that differentiates CI environments.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Bot tag that differentiates CI environments.
* Global tag that differentiates CI environments.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

Test results for "MCP"

2822 passed, 116 skipped


Merge workflow run.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

Test results for "tests 1"

15 failed
❌ [default] › debug-tests.spec.ts:58 › should debug one test and pause at end @vscode-extension
❌ [default] › debug-tests.spec.ts:172 › should debug one test and pause on error @vscode-extension
❌ [default] › debug-tests.spec.ts:380 › should run global setup before debugging @vscode-extension
❌ [default] › debug-tests.spec.ts:465 › should debug multiple tests and stop on first failure @vscode-extension
❌ [default] › debug-tests.spec.ts:516 › should not pause at the end of a setup test @vscode-extension
❌ [default-reuse] › debug-tests.spec.ts:58 › should debug one test and pause at end @vscode-extension
❌ [default-reuse] › debug-tests.spec.ts:172 › should debug one test and pause on error @vscode-extension
❌ [default-reuse] › debug-tests.spec.ts:380 › should run global setup before debugging @vscode-extension
❌ [default-reuse] › debug-tests.spec.ts:465 › should debug multiple tests and stop on first failure @vscode-extension
❌ [default-reuse] › debug-tests.spec.ts:516 › should not pause at the end of a setup test @vscode-extension
❌ [default-trace] › debug-tests.spec.ts:58 › should debug one test and pause at end @vscode-extension
❌ [default-trace] › debug-tests.spec.ts:172 › should debug one test and pause on error @vscode-extension
❌ [default-trace] › debug-tests.spec.ts:380 › should run global setup before debugging @vscode-extension
❌ [default-trace] › debug-tests.spec.ts:465 › should debug multiple tests and stop on first failure @vscode-extension
❌ [default-trace] › debug-tests.spec.ts:516 › should not pause at the end of a setup test @vscode-extension

5 flaky ⚠️ [installation tests] › playwright-cli.spec.ts:21 › cli should work `@package-installations-macos-latest`
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:1082 › cli codegen › should not throw csp directive violation errors `@firefox-ubuntu-22.04-node20`
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104 › should work with strict CSP policy `@firefox-ubuntu-22.04-node20`
⚠️ [playwright-test] › ui-mode-trace.spec.ts:183 › should show snapshots for steps `@windows-latest-node20`
⚠️ [playwright-test] › ui-mode-trace.spec.ts:796 › should update state on subsequent run `@windows-latest-node20`

34396 passed, 696 skipped


Merge workflow run.

@Skn0tt Skn0tt merged commit 5579232 into microsoft:main Jan 6, 2026
32 of 35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants