Skip to content

Commit 21a2dfd

Browse files
committed
Refactor version detection using release manifest
1 parent b522180 commit 21a2dfd

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

action.sh

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,30 @@ FLUTTER_RELEASE_URL="https://storage.googleapis.com/flutter_infra_release/releas
1212
FLUTTER_RELEASE_MANIFEST_URL="https://storage.googleapis.com/flutter_infra_release/releases/releases_$FLUTTER_OS.json"
1313
FLUTTER_RELEASE_MANIFEST_FILE="${RUNNER_TEMP}/flutter_release.json"
1414

15-
# Detect the latest version
16-
if [[ $FLUTTER_VERSION == "latest" ]]
15+
echo "Downloading Flutter release manifest: $FLUTTER_RELEASE_MANIFEST_URL"
16+
if curl -fsSL "$FLUTTER_RELEASE_MANIFEST_URL" -o "$FLUTTER_RELEASE_MANIFEST_FILE";
1717
then
18-
echo "Detecting latest version..."
19-
if curl -fsSL "$FLUTTER_RELEASE_MANIFEST_URL" -o "$FLUTTER_RELEASE_MANIFEST_FILE";
18+
# Detect the latest version
19+
if [[ $FLUTTER_VERSION == "latest" ]]
2020
then
2121
FLUTTER_RELEASE_CURRENT=$(jq -r ".current_release.${FLUTTER_CHANNEL}" "$FLUTTER_RELEASE_MANIFEST_FILE")
2222
FLUTTER_RELEASE_VERSION=$(jq -r ".releases | map(select(.hash == \"${FLUTTER_RELEASE_CURRENT}\")) | .[0].version" "$FLUTTER_RELEASE_MANIFEST_FILE")
2323
FLUTTER_RELEASE_SHA256=$(jq -r ".releases | map(select(.hash == \"${FLUTTER_RELEASE_CURRENT}\")) | .[0].sha256" "$FLUTTER_RELEASE_MANIFEST_FILE")
2424
FLUTTER_RELEASE_ARCHIVE=$(jq -r ".releases | map(select(.hash == \"${FLUTTER_RELEASE_CURRENT}\")) | .[0].archive" "$FLUTTER_RELEASE_MANIFEST_FILE")
25-
rm "$FLUTTER_RELEASE_MANIFEST_FILE"
2625

2726
# Set the detected version
2827
FLUTTER_VERSION=$FLUTTER_RELEASE_VERSION
2928
FLUTTER_DOWNLOAD_URL="${FLUTTER_RELEASE_URL}/${FLUTTER_RELEASE_ARCHIVE}"
3029
else
31-
echo -e "::error::Failed to detect the latest version."
32-
exit 1
30+
FLUTTER_RELEASE_SHA256=$(jq -r ".releases | map(select(.version == \"${FLUTTER_VERSION}\")) | .[0].sha256" "$FLUTTER_RELEASE_MANIFEST_FILE")
31+
FLUTTER_RELEASE_ARCHIVE=$(jq -r ".releases | map(select(.version == \"${FLUTTER_VERSION}\")) | .[0].archive" "$FLUTTER_RELEASE_MANIFEST_FILE")
32+
33+
# Set the detected version
34+
FLUTTER_DOWNLOAD_URL="${FLUTTER_RELEASE_URL}/${FLUTTER_RELEASE_ARCHIVE}"
3335
fi
36+
else
37+
echo -e "::error::Failed to download Flutter release manifest."
38+
exit 1
3439
fi
3540

3641
# Apple Intel or Apple Silicon

0 commit comments

Comments
 (0)