From 4963dedac14b1344919342276d4aba8c8bff4e19 Mon Sep 17 00:00:00 2001 From: Sowmya Viswanathan Date: Thu, 9 Jul 2026 08:49:26 -0700 Subject: [PATCH] fix(prerelease-setup): exclude -next tags from auto-resolved upgrade versions -next tags are internal builds, not release candidates. The platform RC and vCluster upgrade resolvers picked the latest pre-release, which included -next tags (e.g. 4.11.0-next.internal.1). Filter them out to match the existing exclusion pattern used elsewhere in the prerelease workflows. ENGQA-1353 --- .github/actions/prerelease-setup/action.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/actions/prerelease-setup/action.yml b/.github/actions/prerelease-setup/action.yml index 9b960c8..d98b45d 100644 --- a/.github/actions/prerelease-setup/action.yml +++ b/.github/actions/prerelease-setup/action.yml @@ -102,8 +102,9 @@ runs: UP="${STANDALONE_VCLUSTER_UPGRADE_VERSION_INPUT#v}" if [ -z "$UP" ]; then # Empty = latest vCluster pre-release (alpha/rc). Mirrors the platform RC resolver below. + # -next tags are internal builds, not release candidates — exclude them from auto-resolution. UP=$(curl -fsSL -H "Authorization: Bearer $GH_TOKEN" https://api.github.com/repos/loft-sh/vcluster/releases \ - | jq -r '[.[] | select(.prerelease == true and .draft == false)][0].tag_name') + | jq -r '[.[] | select(.prerelease == true and .draft == false and (.tag_name | test("-next") | not))][0].tag_name') [ -n "$UP" ] && [ "$UP" != "null" ] || { echo "no vCluster pre-release found in loft-sh/vcluster"; exit 1; } UP="${UP#v}" echo "Resolved latest vCluster pre-release: $UP" @@ -123,9 +124,10 @@ runs: if [ -z "$RC" ]; then # GitHub's /releases/latest excludes pre-releases, so list /releases and filter on `prerelease == true`. # The list is newest-first by created_at, so `[0]` after filter = latest pre-release. + # -next tags are internal builds, not release candidates — exclude them from auto-resolution. # loft-enterprise is private — unauthenticated requests return 404, so the token is required. RC=$(curl -fsSL -H "Authorization: Bearer $GH_TOKEN" https://api.github.com/repos/loft-sh/loft-enterprise/releases \ - | jq -r '[.[] | select(.prerelease == true and .draft == false)][0].tag_name') + | jq -r '[.[] | select(.prerelease == true and .draft == false and (.tag_name | test("-next") | not))][0].tag_name') [ -n "$RC" ] && [ "$RC" != "null" ] || { echo "no platform pre-release found in loft-sh/loft-enterprise"; exit 1; } RC="${RC#v}" echo "Resolved latest platform pre-release: $RC"