From 909dbcbac9de2d3723874d0b397109f942943669 Mon Sep 17 00:00:00 2001 From: Anas Husseini Date: Mon, 9 Sep 2024 14:49:51 +0300 Subject: [PATCH] skip expired images when preparing build matrix --- src/image/prepare_single_image_build_matrix.py | 16 ++++++++++++---- src/image/release.py | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/image/prepare_single_image_build_matrix.py b/src/image/prepare_single_image_build_matrix.py index b2657354..e2fb73dc 100755 --- a/src/image/prepare_single_image_build_matrix.py +++ b/src/image/prepare_single_image_build_matrix.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import argparse +from datetime import datetime, timezone import glob import json import os @@ -103,10 +104,17 @@ def validate_image_trigger(data: dict) -> None: # set an output as a marker for later knowing if we need to release if "release" in builds[img_number]: - release_to = "true" - # the workflow GH matrix has a problem parsing nested JSON dicts - # so let's remove this field since we don't need it for the builds - builds[img_number]["release"] = "true" + min_eol = min( + v["end-of-life"] for v in builds[img_number]["release"].values() + ) + if min_eol < datetime.now(timezone.utc): + print(f"Track {img_number} skipped because it reached its end of life") + builds[img_number]["release"] = "" + else: + release_to = "true" + # the workflow GH matrix has a problem parsing nested JSON dicts + # so let's remove this field since we don't need it for the builds + builds[img_number]["release"] = "true" else: builds[img_number]["release"] = "" diff --git a/src/image/release.py b/src/image/release.py index 7ce36695..fdf35107 100755 --- a/src/image/release.py +++ b/src/image/release.py @@ -79,7 +79,7 @@ expired = False for risk, value in risks.dict(exclude_none=True).items(): if risk in ["end-of-life", "end_of_life"]: - if all_releases[track][risk] < datetime.now(timezone.utc): + if all_releases[track]["end-of-life"] < datetime.now(timezone.utc): # skip tracks that have expired end_of_life values expired = True break