@@ -45,47 +45,20 @@ dindLatest="$(
4545
4646dockerVersions=" $(
4747 git ls-remote --tags https://github.com/docker/docker.git \
48- | cut -d$' \t ' -f2 \
49- | grep ' ^refs/tags/\(docker-\)\?v[0-9].*$' \
50- | sed ' s!^refs/tags/\(docker-\)\?v!!; s!\^{}$!!' \
51- | sort -u \
52- | gawk '
53- { data[lines++] = $0 }
54-
55- # "beta" sorts lower than "tp" even though "beta" is a more preferred release, so we need to explicitly adjust the sorting order for RCs
56- # also, "18.09.0-ce-beta1" vs "18.09.0-beta3"
57- function docker_version_compare(i1, v1, i2, v2, l, r) {
58- l = v1; gsub(/-ce/, "", l); gsub(/-tp/, "-alpha", l)
59- r = v2; gsub(/-ce/, "", r); gsub(/-tp/, "-alpha", r)
60- patsplit(l, ltemp, /[^.-]+/)
61- patsplit(r, rtemp, /[^.-]+/)
62- for (i = 0; i < length(ltemp) && i < length(rtemp); ++i) {
63- if (ltemp[i] < rtemp[i]) {
64- return -1
65- }
66- if (ltemp[i] > rtemp[i]) {
67- return 1
68- }
69- }
70- return 0
71- }
72-
73- END {
74- asort(data, result, "docker_version_compare")
75- for (i in result) {
76- print result[i]
77- }
78- }
48+ | jq --raw-input --null-input --raw-output '
49+ [ inputs | capture("refs/tags/(docker-)?v(?<version>[0-9.a-z-]+)($|\\^)") | .version ]
50+ | unique_by( split(".") | map(tonumber? // .) )
51+ | reverse[]
7952 '
8053) "
8154
8255buildxVersions=" $(
8356 git ls-remote --tags https://github.com/docker/buildx.git \
84- | cut -d $' \t ' -f2 \
85- | grep ' ^ refs/tags/v[0-9].*$ ' \
86- | sed ' s!^refs/tags/v!!; s!\^{}$!! ' \
87- | grep -vE -- ' -rc ' \
88- | sort -ruV
57+ | jq --raw-input --null-input --raw-output '
58+ [ inputs | capture(" refs/tags/v(?<version> [0-9.]+)($|\\^)") | .version ]
59+ | unique_by( split(".") | map(tonumber? // .) )
60+ | reverse[]
61+ '
8962) "
9063buildx=
9164buildxVersion=
133106
134107composeVersions=" $(
135108 git ls-remote --tags https://github.com/docker/compose.git \
136- | cut -d $' \t ' -f2 \
137- | grep ' ^ refs/tags/v[0-9].*$ ' \
138- | sed ' s!^refs/tags/v!!; s!\^{}$!! ' \
139- | grep -vE -- ' -[a-zA-Z] ' \
140- | sort -ruV
109+ | jq --raw-input --null-input --raw-output '
110+ [ inputs | capture(" refs/tags/v(?<version> [0-9.]+)($|\\^)") | .version ]
111+ | unique_by( split(".") | map(tonumber? // .) )
112+ | reverse[]
113+ '
141114) "
142115compose=
143116composeVersion=
@@ -196,7 +169,7 @@ for version in "${versions[@]}"; do
196169 channel=' test'
197170 fi
198171
199- if ! fullVersion=" $( grep $rcGrepV -E -- ' -(rc|tp|beta)' <<< " $versionOptions" | tail -1) " || [ -z " $fullVersion " ]; then
172+ if ! fullVersion=" $( grep $rcGrepV -E -- ' -(rc|tp|beta)' <<< " $versionOptions" | head -1) " || [ -z " $fullVersion " ]; then
200173 if currentNull=" $( jq -r ' .[env.version] == null' versions.json) " && [ " $currentNull " = ' true' ]; then
201174 echo >&2 " warning: skipping '$version ' (does not appear to be released yet)"
202175 json=" $( jq <<< " $json" -c ' .[env.version] = null' ) "
0 commit comments