in cdk-project/lambda/python-functions/github_webhook_receiver.py [0:0]
def find_stale_builds(project_name, source_version):
stale_builds = []
# only consider builds <= 1 day old
search_after = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=1)
next_token = None
while True:
# get build ids, most recent first
response = list_builds(project_name, next_token)
build_ids = response["ids"]
next_token = response.get("nextToken")
# no builds? stop looking
if not build_ids:
break
builds = cb_client.batch_get_builds(ids=build_ids)["builds"]
for b in builds:
# if it's running, and for the same pr, add it to stale list
if b["buildStatus"] == "IN_PROGRESS" and b["sourceVersion"] == source_version:
stale_builds.append(b["id"])
# if startTime < cutoff, stop looking
if b["startTime"] < search_after:
next_token = None
break
if not next_token:
break
logger.info("found %d stale builds for %s:%s", len(stale_builds), project_name, source_version)
return stale_builds