From fc9a62a2d86c844c2dc893f146ba149fe103cd0a Mon Sep 17 00:00:00 2001 From: Michael 'Flimmy' Flemming Date: Tue, 9 Dec 2025 16:25:16 +0100 Subject: [PATCH 1/3] add comments to nested ifs --- .woodpecker.star | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.woodpecker.star b/.woodpecker.star index 39e1c91c9f..f10de07e60 100644 --- a/.woodpecker.star +++ b/.woodpecker.star @@ -1611,9 +1611,11 @@ def dockerReleases(ctx): docker_repos = [] build_type = "" + # only make realeases on tag events if ctx.build.event == "tag": tag = ctx.build.ref.replace("refs/tags/v", "").lower() + # iterate over production tags to see if this is a production release is_production = False for prod_tag in config["dockerReleases"]["production"]["tags"]: if tag.startswith(prod_tag): @@ -1628,6 +1630,7 @@ def dockerReleases(ctx): docker_repos.append(config["dockerReleases"]["rolling"]["repo"]) build_type = config["dockerReleases"]["rolling"]["build_type"] + # on non tag events, do daily build else: docker_repos.append(config["dockerReleases"]["daily"]["repo"]) build_type = config["dockerReleases"]["daily"]["build_type"] From 61a591bcba25831f14113e34d9d7a0e40aa74750 Mon Sep 17 00:00:00 2001 From: Michael 'Flimmy' Flemming Date: Tue, 9 Dec 2025 16:34:29 +0100 Subject: [PATCH 2/3] ci: move config getter from nested if to for-loop --- .woodpecker.star | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.woodpecker.star b/.woodpecker.star index f10de07e60..45104d8087 100644 --- a/.woodpecker.star +++ b/.woodpecker.star @@ -1608,7 +1608,7 @@ def uploadTracingResult(ctx): def dockerReleases(ctx): pipelines = [] - docker_repos = [] + docker_releases = [] build_type = "" # only make realeases on tag events @@ -1623,19 +1623,18 @@ def dockerReleases(ctx): break if is_production: - docker_repos.append(config["dockerReleases"]["production"]["repo"]) - build_type = config["dockerReleases"]["production"]["build_type"] + docker_releases.append("production") else: - docker_repos.append(config["dockerReleases"]["rolling"]["repo"]) - build_type = config["dockerReleases"]["rolling"]["build_type"] + docker_releases.append("rolling") # on non tag events, do daily build else: - docker_repos.append(config["dockerReleases"]["daily"]["repo"]) - build_type = config["dockerReleases"]["daily"]["build_type"] + docker_releases.append("daily") - for repo in docker_repos: + for releaseConfigName in docker_releases: + repo = config["dockerReleases"][releaseConfigName]["repo"] + build_type = config["dockerReleases"][releaseConfigName]["build_type"] repo_pipelines = [] repo_pipelines.append(dockerRelease(ctx, repo, build_type)) From ec30bcc030a097bdcbc34738059a59ff9eb1ca19 Mon Sep 17 00:00:00 2001 From: Michael 'Flimmy' Flemming Date: Tue, 9 Dec 2025 16:45:09 +0100 Subject: [PATCH 3/3] ci: add logic to do multiple docker releases for non-patch production-releases --- .woodpecker.star | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.woodpecker.star b/.woodpecker.star index 45104d8087..7fadb097ef 100644 --- a/.woodpecker.star +++ b/.woodpecker.star @@ -388,6 +388,8 @@ config = { "production": { # NOTE: need to be updated if new production releases are determined "tags": ["2.0", "4.0"], + # NOTE: need to be set to true if patch releases are made from stable-X-branches + "skip_rolling": "false", "repo": docker_repo_slug, "build_type": "production", }, @@ -1617,13 +1619,19 @@ def dockerReleases(ctx): # iterate over production tags to see if this is a production release is_production = False + skip_rolling = False for prod_tag in config["dockerReleases"]["production"]["tags"]: if tag.startswith(prod_tag): is_production = True + skip_rolling = config["dockerReleases"]["production"]["skip_rolling"] break if is_production: docker_releases.append("production") + # a new production realease is also a rolling release + # unless skip_rolling is set in the config, i.e. for patch-releases on stable-branch + if not skip_rolling: + docker_releases.append("rolling") else: docker_releases.append("rolling")