Skip to content

Commit 488c0c9

Browse files
committed
Auto-scrape Composer version from upstream composer.lock files
1 parent 1eca4a1 commit 488c0c9

File tree

3 files changed

+27
-14
lines changed

3 files changed

+27
-14
lines changed

Dockerfile.template

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ RUN { \
8383
} > /usr/local/etc/php/conf.d/opcache-recommended.ini
8484

8585
{{ if env.version | startswith("7") then "" else ( -}}
86-
COPY --from=composer:{{ .composerVersion }} /usr/bin/composer /usr/local/bin/
86+
COPY --from=composer:{{ .composer.version }} /usr/bin/composer /usr/local/bin/
8787

8888
{{ ) end -}}
8989
# https://www.drupal.org/node/3060/release

versions.json

+9-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
"version": "7.78"
1313
},
1414
"8.9": {
15-
"composerVersion": "1.10",
15+
"composer": {
16+
"version": "1.10"
17+
},
1618
"md5": "75f7a83b14a1e4ec13ca9827f71ccd1c",
1719
"phpVersions": [
1820
"7.4"
@@ -25,7 +27,9 @@
2527
"version": "8.9.13"
2628
},
2729
"9.0": {
28-
"composerVersion": "1.10",
30+
"composer": {
31+
"version": "1.10"
32+
},
2933
"phpVersions": [
3034
"7.4"
3135
],
@@ -37,7 +41,9 @@
3741
"version": "9.0.11"
3842
},
3943
"9.1": {
40-
"composerVersion": "2.0",
44+
"composer": {
45+
"version": "2.0"
46+
},
4147
"phpVersions": [
4248
"8.0",
4349
"7.4"

versions.sh

+17-10
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,6 @@ else
1212
fi
1313
versions=( "${versions[@]%/}" )
1414

15-
declare -A composerVersions=(
16-
[8.9]='1.10' # https://github.com/drupal/drupal/blob/8.9.12/composer.lock#L4357-L4358
17-
[9.0]='1.10' # https://github.com/drupal/drupal/blob/9.0.10/composer.lock#L4448-L4449
18-
[9.1]='2.0' # https://github.com/drupal/drupal/blob/9.1.2/composer.lock#L4730-L4731
19-
)
20-
2115
for version in "${versions[@]}"; do
2216
export version
2317

@@ -66,14 +60,27 @@ for version in "${versions[@]}"; do
6660
doc="$(jq <<<"$doc" -c '.md5 = env.md5')"
6761
fi
6862

69-
echo "$version: $fullVersion"
70-
71-
composerVersion="${composerVersions[$version]:-}"
63+
composerVersion="$(
64+
wget -qO- "https://github.com/drupal/drupal/raw/$fullVersion/composer.lock" \
65+
| jq -r '
66+
(.packages, ."packages-dev")[]
67+
| select(.name == "composer/composer")
68+
| .version
69+
| split(".")[0:2] | join(".")
70+
' \
71+
|| :
72+
)"
73+
if [ "$version" != '7' ] && [ -z "$composerVersion" ]; then
74+
echo >&2 "error: cannot find composer version for '$version' ('$fullVersion')"
75+
exit 1
76+
fi
7277
if [ -n "$composerVersion" ]; then
7378
export composerVersion
74-
doc="$(jq <<<"$doc" -c '.composerVersion = env.composerVersion')"
79+
doc="$(jq <<<"$doc" -c '.composer = { version: env.composerVersion }')"
7580
fi
7681

82+
echo "$version: $fullVersion${composerVersion:+ (composer $composerVersion)}"
83+
7784
export fullVersion
7885
json="$(
7986
jq <<<"$json" -c --argjson doc "$doc" '

0 commit comments

Comments
 (0)