Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

akoeplinger
Copy link
Member

@akoeplinger akoeplinger commented Apr 23, 2025

I noticed we were sending 30k workitems each day to various Helix queues at the same time, causing a heavy load on the system. This is due to the outerloop pipeline having a schedule trigger which matches old preview branches or the staging branches.

This fixes that and also sets it so that the trigger only applies if there are actual source changes.

I noticed we were sending 30k workitems each day to various Helix queues, this is due to the outerloop pipeline having a schedule triggere which matches old preview branches or the staging branches.

This fixes that and also sets it so that the trigger only applies if there are actual source changes.
@Copilot Copilot AI review requested due to automatic review settings April 23, 2025 19:43
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR modifies the outerloop pipeline schedules to ensure that only release branches trigger the pipeline and that it runs only when there are source changes.

  • Updated the branch filter in eng/pipelines/libraries/outerloop.yml from using a wildcard pattern to "release/*.0" to narrow the branches triggering the run.
  • Added "always: false" to both outerloop.yml and outerloop-mono.yml to run the pipelines only if there are changes since the last scheduled run.

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
eng/pipelines/libraries/outerloop.yml Modified branch filter pattern and enabled condition-based scheduling.
eng/pipelines/libraries/outerloop-mono.yml Enabled condition-based scheduling to run only on source changes.
Comments suppressed due to low confidence (1)

eng/pipelines/libraries/outerloop.yml:9

  • Please verify that the new branch pattern 'release/*.0' correctly captures all intended release branches, as it may exclude branches that do not strictly end with '.0'.
+    - release/*.0

Copy link
Contributor

Tagging subscribers to this area: @dotnet/area-infrastructure-libraries
See info in area-owners.md if you want to be subscribed.

include:
- main
- release/*.*
- release/*.0
Copy link
Member

Choose a reason for hiding this comment

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

The -staging variants might be more useful as they get active changes. Granted - neither release branch gets a lot of scrutiny.

Copy link
Member Author

Choose a reason for hiding this comment

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

yeah I don't have a strong opinion. My thinking was that since they don't get a lot of scrutiny anyway (they've been red forever) it'd be better to save more reasources by only running on the .0 branches which change less often.

Copy link
Member

Choose a reason for hiding this comment

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

I assume the always change is really the more important of the two here.

Copy link
Contributor

Choose a reason for hiding this comment

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

If we ever decide to once again release a version like 3.1, this filter won't apply. Shouldn't it just be release/*?

Copy link
Member Author

@akoeplinger akoeplinger Apr 24, 2025

Choose a reason for hiding this comment

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

@carlossanlop no since that one will match the preview/staging branches again. if we ever go back to .1 then lots of other stuff will break, this is the least of my concerns :)

Copy link
Member

@lewing lewing left a comment

Choose a reason for hiding this comment

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

This is definitely an improvement over queueing every release branch every night. If there are concerns about missing things we could keep the old pattern and just change always.
Adding @jeffschwMSFT for thoughts

@carlossanlop
Copy link
Contributor

Do we need to backport?

@akoeplinger
Copy link
Member Author

Do we need to backport?

Yes since AzDO takes the schedule trigger from the branch, not main

@akoeplinger
Copy link
Member Author

/ba-g failures are unrelated and can't be caused by the .yml schedule changes

@akoeplinger akoeplinger merged commit 13f0dee into dotnet:main Apr 24, 2025
78 of 84 checks passed
@akoeplinger akoeplinger deleted the fix-outerloop branch April 24, 2025 18:22
@akoeplinger
Copy link
Member Author

/backport to release/10.0-preview4

Copy link
Contributor

Started backporting to release/10.0-preview4: https://github.com/dotnet/runtime/actions/runs/14649316331

@akoeplinger
Copy link
Member Author

/backport to release/9.0-staging

@akoeplinger
Copy link
Member Author

/backport to release/8.0-staging

Copy link
Contributor

Started backporting to release/9.0-staging: https://github.com/dotnet/runtime/actions/runs/14649323195

Copy link
Contributor

Started backporting to release/8.0-staging: https://github.com/dotnet/runtime/actions/runs/14649324329

@github-actions github-actions bot locked and limited conversation to collaborators May 25, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants