From e30cdd83253bd5cf3c1c4f311004221326d8173f Mon Sep 17 00:00:00 2001 From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com> Date: Thu, 29 Oct 2026 23:02:26 +0100 Subject: [PATCH] refactor(release): put a v in front of the upstream version in tags - An upstream line is tagged v-v in git instead of -v - Coolify has no upstream lines, its git tags stay v, and the v is stripped from the Docker image tags --- .github/workflows/release.yaml | 2 +- scripts/release.sh | 4 ++-- scripts/version.sh | 15 ++++++++------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 38098158c7..7d0d06af1a 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -154,7 +154,7 @@ jobs: echo "tags=$tags" >> "$GITHUB_OUTPUT" jq -r 'to_entries[] | "\(.key) \(.value)"' <<< "$tags" | while read -r tag release; do for repository in ghcr.io/coollabsio/coolify docker.io/coollabsio/coolify; do - docker buildx imagetools create --tag "$repository:$tag" "$repository:${release#v}" + docker buildx imagetools create --tag "$repository:${tag#v}" "$repository:${release#v}" done done latest="$(jq -r '.latest // empty' <<< "$tags")" diff --git a/scripts/release.sh b/scripts/release.sh index bcc83c109c..a25bb1bb07 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -78,7 +78,7 @@ read_versions() { read_changes() { local tag range hash subject - tag="$(git describe --tags --abbrev=0 --match "*v$stable" 2> /dev/null)" || true + tag="$(git describe --tags --abbrev=0 --match "v${UPSTREAM:+*-v}$stable" 2> /dev/null)" || true range="${tag:+$tag..}HEAD" required="patch" if [ -n "$(git log -E --grep="$BREAKING_CHANGE" --format=%h "$range")" ]; then @@ -195,7 +195,7 @@ artifact_version() { } release_tags() { - git tag --list "$@" | grep -E "^${UPSTREAM:+[^-]+-}v[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)\.[0-9]+)?$" || true + git tag --list "$@" | grep -E "^v${UPSTREAM:+[^-]+-v}[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)\.[0-9]+)?$" || true } tag_versions() { diff --git a/scripts/version.sh b/scripts/version.sh index bea72c1ff5..dfeeedabee 100755 --- a/scripts/version.sh +++ b/scripts/version.sh @@ -89,6 +89,7 @@ print_next_build() { else select_nightly_base fi + [ -z "$UPSTREAM" ] || current_version="${current_version#*-v}" build="$base.$(date -u +%Y%m%d)" if [[ "$current_version" == "$build".* ]]; then build+=".$((${current_version##*.} + 1))" @@ -96,7 +97,7 @@ print_next_build() { build+=".1" fi upstream_lines <(git show "$revision:$UPSTREAM_FILE") | while read -r name upstream; do - jq -nc --arg name "$name" --arg version "$upstream" --arg tag "${upstream:+$upstream-}v$build" '{$name, $version, $tag}' + jq -nc --arg name "$name" --arg version "$upstream" --arg tag "v${upstream:+$upstream-v}$build" '{$name, $version, $tag}' done | jq -sc --arg branch "$branch" --arg revision "$revision" --arg image "$build" '{$branch, $revision, $image, lines: .}' exit 0 } @@ -175,7 +176,7 @@ select_releases() { releases= [ "$publish" = true ] || return 0 while read -r name sqlite; do - tag="${sqlite:+$sqlite-}v$version" + tag="v${sqlite:+$sqlite-v}$version" if grep -qxF "$tag" <<< "$tags"; then info "$tag is published" continue @@ -183,7 +184,7 @@ select_releases() { previous= while read -r older; do ! newer "$sqlite" "$older" || previous="$older" - done < <(with_version "$version" <<< "$tags" | sed -n 's/-v.*//p') + done < <(with_version "$version" <<< "$tags" | sed -nE 's/^v(.*)-v.*/\1/p') added+="$tag"$'\n' releases+="$(jq -nc --arg name "$name" --arg version "$sqlite" --arg image "$version" --arg tag "$tag" --arg previous "$previous" \ '{$name, $version, $image, $tag, $previous}')"$'\n' @@ -288,8 +289,8 @@ moved_tags() { moving_tags() { local tags releases latest preview base image sqlite prefix seen=" " tags="$(cat)" - releases="$(sed -nE 's/^((.*)-)?v([^-]*)$/\3 \2/p' <<< "$tags" | sort -k1,1rV -k2,2rV)" - latest="$(awk 'NR == 1 && NF { print ($2 == "" ? "" : $2 "-") "v" $1 }' <<< "$releases")" + releases="$(sed -nE 's/^v((.*)-v)?([^-]*)$/\3 \2/p' <<< "$tags" | sort -k1,1rV -k2,2rV)" + latest="$(awk 'NR == 1 && NF { print "v" ($2 == "" ? "" : $2 "-v") $1 }' <<< "$releases")" preview="$latest" while read -r base; do if newer "$base" "${latest##*v}"; then @@ -303,7 +304,7 @@ moving_tags() { while read -r image sqlite; do prefix="$sqlite" while [ -n "$prefix" ] && [[ "$seen" != *" $prefix "* ]]; do - echo "$prefix $sqlite-v$image" + echo "$prefix v$sqlite-v$image" seen+="$prefix " [[ "$prefix" == *.* ]] || break prefix="${prefix%.*}" @@ -312,7 +313,7 @@ moving_tags() { } release_tags() { - git tag --list "$@" | grep -E "^${UPSTREAM:+[^-]+-}v[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)\.[0-9]+)?$" || true + git tag --list "$@" | grep -E "^v${UPSTREAM:+[^-]+-v}[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)\.[0-9]+)?$" || true } tag_versions() {