Skip to content

Conversation

@Arlodotexe
Copy link
Member

@Arlodotexe Arlodotexe commented Jul 1, 2025

Updates build.yml to run incremental component check as early as possible-- before uno-check, dotnet restore, msbuild setup, sdk installation, and machine configuration (pagefile, usermode dumps).

Since our incremental component checks use pwsh instead of msbuild, we can save an addition 4-6 minutes of CI time per multitarget by skipping these dependency install steps.

…, dotnet restore and msbuild setup.

Since our incremental component checks use pwsh instead of msbuild, we can save an addition 4-6 minutes of CI time by skipping these steps.
…kips for dotnet sdk and machine configuration (pagefile, usermode dumps)
@Arlodotexe Arlodotexe force-pushed the ci/incremental-builds/improvement/skip-uno-check branch from 8c32163 to fd2ad1d Compare July 1, 2025 18:05
Copy link
Member

@michael-hawker michael-hawker left a comment

Choose a reason for hiding this comment

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

Is there a case where the buildable components is empty?

@Arlodotexe
Copy link
Member Author

Arlodotexe commented Jul 1, 2025

Is there a case where the buildable components is empty?

It didn't get far enough to do the component check. The error is coming from git:

Run $changedComponents = $(./tooling/Get-Changed-Components.ps1 8c321638c2ead1e02181fc460f9e71d7ead9d946 fd2ad1d6b79bff39cb8f3ea5311684b2b6d09dca)
From https://github.com/CommunityToolkit/Labs-Windows
 * branch              main       -> FETCH_HEAD
fatal: Invalid symmetric difference expression 8c321638c2ead1e02181fc460f9e71d7ead9d946...fd2ad1d6b79bff39cb8f3ea5311684b2b6d09dca
fatal: Invalid symmetric difference expression 8c321638c2ead1e02181fc460f9e71d7ead9d946...fd2ad1d6b79bff39cb8f3ea5311684b2b6d09dca

Looking at 8c32163 and fd2ad1d, these commits are identical both in content and in the parent commit. The only discernable difference is that the latter is a commit that resides on our current ci/incremental-builds/improvement/skip-uno-check branch.

In a normal push, the before commit is a direct ancestor of the after commit. However, with a force push, you're rewriting branch history.

Since the before commit is often no longer part of the branch's history, and it has no direct relationship with the after commit and cannot be compared symmetrically. This is the error we're seeing here.

The command ./tooling/Get-Changed-Components.ps1 8c321638c2ead1e02181fc460f9e71d7ead9d946 fd2ad1d6b79bff39cb8f3ea5311684b2b6d09dca works locally for me, but not in CI. This suggests that one of the two commits (likely the orphaned from commit) may not be accessible in CI when a force-push happens.

Given that the command works locally, let's try updating the submodule to fetch the missing orphaned commit and see if that resolves the issue in CI.


This also makes me wonder whether rebases are going to work as expected. I'll need to investigate before we can settle on a solution.

@Arlodotexe Arlodotexe force-pushed the ci/incremental-builds/improvement/skip-uno-check branch from 4dbb8dd to e9f0567 Compare July 2, 2025 20:04
@Arlodotexe
Copy link
Member Author

Arlodotexe commented Jul 2, 2025

@michael-hawker It looks like that fixed the issue with force pushes! We should be able to merge once CI passes 😄

Note that we'll need to close off CommunityToolkit/Tooling-Windows-Submodule#290 first

@Arlodotexe Arlodotexe enabled auto-merge July 3, 2025 20:41
@Arlodotexe Arlodotexe merged commit 7d2f3ab into main Jul 3, 2025
21 of 22 checks passed
@Arlodotexe Arlodotexe deleted the ci/incremental-builds/improvement/skip-uno-check branch July 4, 2025 01:10
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