Skip to content

Commit dc36495

Browse files
committed
Add suite aliases
Note: thanks to Alpine 3.13 not being supported anymore, this fails to run, so I'm running it locally against an older commit so it can appropriately scrape the parent arches for one last push with tags before we update the Alpine and Debian versions.
1 parent 5444fd5 commit dc36495

File tree

1 file changed

+53
-32
lines changed

1 file changed

+53
-32
lines changed

generate-stackbrew-library.sh

Lines changed: 53 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -68,43 +68,64 @@ join() {
6868
}
6969

7070
for version in "${versions[@]}"; do
71-
commit="$(dirCommit "$version")"
72-
73-
fullVersion="$(git show "$commit":"$version/Dockerfile" | awk '$1 == "ENV" && $2 == "REDMINE_VERSION" { print $3; exit }')"
74-
75-
versionAliases=(
76-
$fullVersion
77-
$version
78-
${aliases[$version]:-}
79-
)
80-
81-
parent="$(awk 'toupper($1) == "FROM" { print $2 }' "$version/Dockerfile")"
82-
arches="${parentRepoToArches[$parent]}"
83-
84-
# the "gosu" Debian package isn't available on mips64le
85-
arches="$(sed <<<" $arches " -e 's/ mips64le / /g')"
86-
87-
echo
88-
cat <<-EOE
89-
Tags: $(join ', ' "${versionAliases[@]}")
90-
Architectures: $(join ', ' $arches)
91-
GitCommit: $commit
92-
Directory: $version
93-
EOE
94-
95-
for variant in passenger alpine; do
96-
[ -f "$version/$variant/Dockerfile" ] || continue
97-
98-
commit="$(dirCommit "$version/$variant")"
99-
100-
variantAliases=( "${versionAliases[@]/%/-$variant}" )
101-
variantAliases=( "${variantAliases[@]//latest-/}" )
71+
for variant in '' passenger alpine; do
72+
dir="$version${variant:+/$variant}"
73+
[ -f "$dir/Dockerfile" ] || continue
74+
75+
commit="$(dirCommit "$dir")"
76+
77+
fullVersion="$(git show "$commit":"$dir/Dockerfile" | awk '$1 == "ENV" && $2 == "REDMINE_VERSION" { print $3; exit }')"
78+
79+
versionAliases=(
80+
$fullVersion
81+
$version
82+
${aliases[$version]:-}
83+
)
84+
85+
if [ -n "$variant" ]; then
86+
variantAliases=( "${versionAliases[@]/%/-$variant}" )
87+
variantAliases=( "${variantAliases[@]//latest-/}" )
88+
else
89+
variantAliases=( "${versionAliases[@]}" )
90+
fi
91+
92+
variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile")"
93+
94+
suite="${variantParent#*:}" # "ruby:2.7-slim-bullseye", "2.7-alpine3.15"
95+
suite="${suite##*-}" # "bullseye", "alpine3.15"
96+
suite="${suite#alpine}" # "bullseye", "3.15"
97+
98+
case "$variant" in
99+
alpine)
100+
suite="alpine$suite" # "alpine3.8"
101+
suiteAliases=( "${versionAliases[@]/%/-$suite}" )
102+
;;
103+
passenger)
104+
suiteAliases=( "${variantAliases[@]}" )
105+
;;
106+
*)
107+
suiteAliases=( "${variantAliases[@]/%/-$suite}" )
108+
;;
109+
esac
110+
suiteAliases=( "${suiteAliases[@]//latest-/}" )
111+
variantAliases+=( "${suiteAliases[@]}" )
112+
113+
case "$variant" in
114+
passenger) variantArches='amd64' ;; # https://github.com/docker-library/redmine/pull/87#issuecomment-323877678
115+
*) variantArches="${parentRepoToArches[$variantParent]}" ;;
116+
esac
117+
118+
if [ "$variant" != 'alpine' ]; then
119+
# the "gosu" Debian package isn't available on mips64le
120+
variantArches="$(sed <<<" $variantArches " -e 's/ mips64le / /g')"
121+
fi
102122

103123
echo
104124
cat <<-EOE
105125
Tags: $(join ', ' "${variantAliases[@]}")
126+
Architectures: $(join ', ' $variantArches)
106127
GitCommit: $commit
107-
Directory: $version/$variant
128+
Directory: $dir
108129
EOE
109130
done
110131
done

0 commit comments

Comments
 (0)