Skip to content

Commit 42a6a75

Browse files
yosifkittianon
authored andcommitted
Update generate-stackbrew to tag alpine version or debian suite
1 parent 0bb4068 commit 42a6a75

File tree

1 file changed

+64
-38
lines changed

1 file changed

+64
-38
lines changed

generate-stackbrew-library.sh

Lines changed: 64 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
#!/bin/bash
22
set -eu
33

4+
defaultDebianSuite='stretch-slim'
5+
declare -A debianSuite=(
6+
[5.6]='jessie'
7+
[7.0]='jessie'
8+
[7.1]='jessie'
9+
)
10+
defaultAlpineVersion='3.6'
11+
declare -A alpineVersion=(
12+
[5.6]='3.4'
13+
[7.0]='3.4'
14+
[7.1]='3.4'
15+
)
16+
417
declare -A aliases=(
518
[5.6]='5'
619
[7.1]='7 latest'
@@ -70,50 +83,63 @@ join() {
7083
}
7184

7285
for version in "${versions[@]}"; do
73-
commit="$(dirCommit "$version")"
74-
75-
fullVersion="$(git show "$commit":"$version/Dockerfile" | awk '$1 == "ENV" && $2 == "PHP_VERSION" { print $3; exit }')"
7686

7787
versionAliases=(
78-
$fullVersion
7988
$version
8089
${aliases[$version]:-}
8190
)
8291

83-
for variant in \
84-
'' \
85-
alpine \
86-
apache \
87-
fpm fpm/alpine \
88-
zts zts/alpine \
92+
# order here controls the order of the library/ file
93+
for suite in \
94+
stretch-slim \
95+
jessie \
96+
alpine3.6 \
97+
alpine3.4 \
8998
; do
90-
dir="$version${variant:+/$variant}"
91-
[ -f "$dir/Dockerfile" ] || continue
92-
variant="${variant:-cli}"
93-
94-
commit="$(dirCommit "$dir")"
95-
96-
slash='/'
97-
variantAliases=( "${versionAliases[@]/%/-${variant//$slash/-}}" )
98-
variantAliases=( "${variantAliases[@]//latest-/}" )
99-
if [ "$variant" = 'cli' ]; then
100-
variantAliases+=( "${versionAliases[@]}" )
101-
fi
102-
103-
variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile")"
104-
variantArches="${parentRepoToArches[$variantParent]}"
105-
106-
# 7.2 no longer supports s390x
107-
if [[ "$version" = 7.* ]] && [ "$version" != '7.0' ] && [ "$version" != '7.1' ]; then
108-
variantArches="$(echo " $variantArches " | sed -r -e 's/ s390x//g')"
109-
fi
110-
111-
echo
112-
cat <<-EOE
113-
Tags: $(join ', ' "${variantAliases[@]}")
114-
Architectures: $(join ', ' $variantArches)
115-
GitCommit: $commit
116-
Directory: $dir
117-
EOE
99+
for variant in \
100+
cli \
101+
apache \
102+
fpm \
103+
zts \
104+
; do
105+
dir="$version/$suite/$variant"
106+
[ -f "$dir/Dockerfile" ] || continue
107+
108+
commit="$(dirCommit "$dir")"
109+
versionSuite="${debianSuite[$version]:-$defaultDebianSuite}"
110+
fullVersion="$(git show "$commit":"$dir/Dockerfile" | awk '$1 == "ENV" && $2 == "PHP_VERSION" { print $3; exit }')"
111+
112+
baseAliases=( $fullVersion "${versionAliases[@]}" )
113+
variantAliases=( "${baseAliases[@]/%/-$variant}" )
114+
variantAliases=( "${variantAliases[@]//latest-/}" )
115+
116+
if [ "$variant" = 'cli' ]; then
117+
variantAliases+=( "${baseAliases[@]}" )
118+
fi
119+
if [ "$suite" = "$versionSuite" ]; then
120+
variantAliases=( "${variantAliases[@]/%/-${suite%-slim}}" "${variantAliases[@]}" )
121+
elif [ "${suite#alpine}" = "${alpineVersion[$version]:-$defaultAlpineVersion}" ] ; then
122+
variantAliases=( "${variantAliases[@]/%/-$suite}" "${variantAliases[@]/%/-alpine}" )
123+
variantAliases=( "${variantAliases[@]//latest-/}" )
124+
else
125+
variantAliases=( "${variantAliases[@]/%/-$suite}" )
126+
fi
127+
128+
variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile")"
129+
variantArches="${parentRepoToArches[$variantParent]}"
130+
131+
# 7.2 no longer supports s390x
132+
if [[ "$version" = 7.* ]] && [ "$version" != '7.0' ] && [ "$version" != '7.1' ]; then
133+
variantArches="$(echo " $variantArches " | sed -r -e 's/ s390x//g')"
134+
fi
135+
136+
echo
137+
cat <<-EOE
138+
Tags: $(join ', ' "${variantAliases[@]}")
139+
Architectures: $(join ', ' $variantArches)
140+
GitCommit: $commit
141+
Directory: $dir
142+
EOE
143+
done
118144
done
119145
done

0 commit comments

Comments
 (0)