Skip to content

Commit

Permalink
Make branch prioritisation more general with a sorting function
Browse files Browse the repository at this point in the history
  • Loading branch information
cvicentiu committed Jan 7, 2025
1 parent 6c18e96 commit 7c18870
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,15 +277,19 @@ def fnmatch_any(branch: str, patterns: list[str]) -> bool:


# Priority filter based on saved package branches
def nextBuild(builder: Builder,
requests: list[BuildRequest]) -> str:
for r in requests:
if fnmatch_any(r.sources[""].branch, releaseBranches):
return r
for r in requests:
if fnmatch_any(r.sources[""].branch, savedPackageBranches):
return r
return requests[0]
def nextBuild(builder: Builder, requests: list[BuildRequest]) -> str:
def build_request_sort_key(request: BuildRequest):
branch = request.sources[""].branch
# Booleans are sorted False first.
# Priority is given to releaseBranches, savePackageBranches
# then it's first come, first serve.
return (
not fnmatch_any(branch, releaseBranches),
not fnmatch_any(branch, savedPackageBranches),
request.getSubmitTime(),
)

return sorted(requests, build_request_sort_key)[0]


def canStartBuild(
Expand Down

0 comments on commit 7c18870

Please sign in to comment.