Automate GA releases and tag alias updates ("1", "latest", "rc")
This commit is contained in:
parent
0ad271250b
commit
efffdccb75
|
|
@ -39,6 +39,11 @@ for version; do
|
||||||
|
|
||||||
rm -rf "$version/"
|
rm -rf "$version/"
|
||||||
|
|
||||||
|
if jq -e '.[env.version] | not' versions.json > /dev/null; then
|
||||||
|
echo "deleting $version ..."
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
variants="$(jq -r '.[env.version].variants | map(@sh) | join(" ")' versions.json)"
|
variants="$(jq -r '.[env.version].variants | map(@sh) | join(" ")' versions.json)"
|
||||||
eval "variants=( $variants )"
|
eval "variants=( $variants )"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
declare -A aliases=(
|
|
||||||
[1.9]='1 latest'
|
|
||||||
[1.10-rc]='rc'
|
|
||||||
)
|
|
||||||
|
|
||||||
self="$(basename "$BASH_SOURCE")"
|
self="$(basename "$BASH_SOURCE")"
|
||||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||||
|
|
||||||
|
|
@ -74,19 +69,42 @@ join() {
|
||||||
echo "${out#$sep}"
|
echo "${out#$sep}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare -A latest=(
|
||||||
|
#[1]='1.9'
|
||||||
|
#[latest]='1.9'
|
||||||
|
#[rc]='1.10-rc'
|
||||||
|
)
|
||||||
|
|
||||||
for version; do
|
for version; do
|
||||||
export version
|
export version
|
||||||
|
|
||||||
|
if ! fullVersion="$(jq -er '.[env.version] | if . then .version else empty end' versions.json)"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
variants="$(jq -r '.[env.version].variants | map(@sh) | join(" ")' versions.json)"
|
variants="$(jq -r '.[env.version].variants | map(@sh) | join(" ")' versions.json)"
|
||||||
eval "variants=( $variants )"
|
eval "variants=( $variants )"
|
||||||
|
|
||||||
fullVersion="$(jq -r '.[env.version].version' versions.json)"
|
|
||||||
|
|
||||||
versionAliases=(
|
versionAliases=(
|
||||||
$fullVersion
|
$fullVersion
|
||||||
$version
|
$version
|
||||||
${aliases[$version]:-}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
aliases=()
|
||||||
|
if [ "$version" = "${version%-rc}" ]; then
|
||||||
|
if [[ "$version" =~ [0-9]+[.][0-9]+ ]]; then
|
||||||
|
aliases+=( "${version%%.*}" latest ) # "1", "latest"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
aliases+=( rc )
|
||||||
|
fi
|
||||||
|
for a in "${aliases[@]}"; do
|
||||||
|
if [ -z "${latest[$a]:-}" ]; then
|
||||||
|
latest[$a]="$version"
|
||||||
|
versionAliases+=( "$a" )
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
defaultDebianVariant="$(jq -r '
|
defaultDebianVariant="$(jq -r '
|
||||||
.[env.version].variants
|
.[env.version].variants
|
||||||
| map(select(
|
| map(select(
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
|
"1.10": null,
|
||||||
"1.10-rc": {
|
"1.10-rc": {
|
||||||
"arches": {
|
"arches": {
|
||||||
"alpine-amd64": {
|
"alpine-amd64": {
|
||||||
|
|
|
||||||
20
versions.sh
20
versions.sh
|
|
@ -69,7 +69,8 @@ juliaVersions="$(
|
||||||
)"
|
)"
|
||||||
|
|
||||||
for version in "${versions[@]}"; do
|
for version in "${versions[@]}"; do
|
||||||
export version
|
rcVersion="${version%-rc}"
|
||||||
|
export version rcVersion
|
||||||
|
|
||||||
if \
|
if \
|
||||||
! doc="$(jq <<<"$juliaVersions" -c '
|
! doc="$(jq <<<"$juliaVersions" -c '
|
||||||
|
|
@ -84,6 +85,18 @@ for version in "${versions[@]}"; do
|
||||||
|
|
||||||
echo "$version: $fullVersion"
|
echo "$version: $fullVersion"
|
||||||
|
|
||||||
|
if [ "$rcVersion" != "$version" ] && gaFullVersion="$(jq <<<"$json" -er '.[env.rcVersion] | if . then .version else empty end')"; then
|
||||||
|
# Julia pre-releases have always only been for .0, so if our pre-release now has a relevant GA, it should go away 👀
|
||||||
|
# $ wget -qO- 'https://julialang-s3.julialang.org/bin/versions.json' | jq 'keys_unsorted[]' -r | grep -E '[^0]-'
|
||||||
|
# just in case, we'll also do a version comparison to make sure we don't have a pre-release that's newer than the relevant GA
|
||||||
|
latestVersion="$({ echo "$fullVersion"; echo "$gaFullVersion"; } | sort -V | tail -1)"
|
||||||
|
if [[ "$fullVersion" == "$gaFullVersion"* ]] || [ "$latestVersion" = "$gaFullVersion" ]; then
|
||||||
|
# "x.y.z-rc1" == x.y.z*
|
||||||
|
json="$(jq <<<"$json" -c 'del(.[env.version])')"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
json="$(jq <<<"$json" -c --argjson doc "$doc" '.[env.version] = (
|
json="$(jq <<<"$json" -c --argjson doc "$doc" '.[env.version] = (
|
||||||
$doc
|
$doc
|
||||||
| del(.major)
|
| del(.major)
|
||||||
|
|
@ -102,6 +115,11 @@ for version in "${versions[@]}"; do
|
||||||
else empty end
|
else empty end
|
||||||
])
|
])
|
||||||
)')"
|
)')"
|
||||||
|
|
||||||
|
# make sure pre-release versions have a placeholder for GA
|
||||||
|
if [ "$version" != "$rcVersion" ]; then
|
||||||
|
json="$(jq <<<"$json" -c '.[env.rcVersion] //= null')"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
jq <<<"$json" -S . > versions.json
|
jq <<<"$json" -S . > versions.json
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue