Skip to content

Commit 13bb3fc

Browse files
committed
Refactor latest release detection
1 parent be71782 commit 13bb3fc

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

action.sh

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,25 @@ FLUTTER_VERSION=${1:-"latest"}
99
FLUTTER_CHANNEL=${2:-"stable"}
1010
FLUTTER_OS=$OS
1111

12+
FLUTTER_RELEASE_URL="https://storage.googleapis.com/flutter_infra_release/releases"
13+
FLUTTER_RELEASE_MANIFEST_URL="https://storage.googleapis.com/flutter_infra_release/releases/releases_$FLUTTER_OS.json"
14+
FLUTTER_RELEASE_MANIFEST_FILE="${RUNNER_TEMP}/flutter_release.json"
15+
1216
# Detect the latest version
1317
if [[ $FLUTTER_VERSION == "latest" ]]
1418
then
15-
FLUTTER_RELEASE_MANIFEST_URL="https://storage.googleapis.com/flutter_infra_release/releases/releases_$OS.json"
16-
FLUTTER_RELEASE_MANIFEST_FILE="${RUNNER_TEMP}/flutter_release.json"
1719
echo "Detecting latest version..."
1820
if curl -fsSL "$FLUTTER_RELEASE_MANIFEST_URL" -o "$FLUTTER_RELEASE_MANIFEST_FILE";
1921
then
20-
CURRENT_RELEASE=$(jq -r ".current_release.${FLUTTER_CHANNEL}" "$FLUTTER_RELEASE_MANIFEST_FILE")
21-
FLUTTER_VERSION=$(jq -r ".releases | map(select(.hash == \"${CURRENT_RELEASE}\")) | .[0].version" "$FLUTTER_RELEASE_MANIFEST_FILE")
22-
FLUTTER_SHA256=$(jq -r ".releases | map(select(.hash == \"${CURRENT_RELEASE}\")) | .[0].sha256" "$FLUTTER_RELEASE_MANIFEST_FILE")
22+
FLUTTER_RELEASE_CURRENT=$(jq -r ".current_release.${FLUTTER_CHANNEL}" "$FLUTTER_RELEASE_MANIFEST_FILE")
23+
FLUTTER_RELEASE_VERSION=$(jq -r ".releases | map(select(.hash == \"${FLUTTER_RELEASE_CURRENT}\")) | .[0].version" "$FLUTTER_RELEASE_MANIFEST_FILE")
24+
FLUTTER_RELEASE_SHA256=$(jq -r ".releases | map(select(.hash == \"${FLUTTER_RELEASE_CURRENT}\")) | .[0].sha256" "$FLUTTER_RELEASE_MANIFEST_FILE")
25+
FLUTTER_RELEASE_ARCHIVE=$(jq -r ".releases | map(select(.hash == \"${FLUTTER_RELEASE_CURRENT}\")) | .[0].archive" "$FLUTTER_RELEASE_MANIFEST_FILE")
2326
rm "$FLUTTER_RELEASE_MANIFEST_FILE"
27+
28+
# Set the detected version
29+
FLUTTER_VERSION=$FLUTTER_RELEASE_VERSION
30+
FLUTTER_DOWNLOAD_URL="${FLUTTER_RELEASE_URL}/${FLUTTER_RELEASE_ARCHIVE}"
2431
else
2532
echo -e "::error::Failed to detect the latest version."
2633
exit 1
@@ -40,10 +47,6 @@ fi
4047
FLUTTER_RUNNER_TOOL_CACHE="${RUNNER_TOOL_CACHE}/flutter-${RUNNER_OS}-${FLUTTER_VERSION}-${RUNNER_ARCH}"
4148
FLUTTER_PUB_CACHE="${RUNNER_TEMP}/pub-cache"
4249

43-
# Check if Flutter SDK already exists
44-
# Otherwise download and install
45-
# https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_arm64_3.0.2-stable.zip
46-
FLUTTER_RELEASE_URL="https://storage.googleapis.com/flutter_infra_release/releases"
4750

4851
# OS archive file extension
4952
EXT="zip"
@@ -52,9 +55,12 @@ then
5255
EXT="tar.xz"
5356
fi
5457

58+
# Check if Flutter SDK already exists
59+
# Otherwise download and install
60+
# https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_arm64_3.0.2-stable.zip
5561
if [ ! -d "${FLUTTER_RUNNER_TOOL_CACHE}" ]; then
5662
FLUTTER_BUILD_OS=$FLUTTER_OS
57-
echo "Installing Flutter SDK version: ${FLUTTER_VERSION} (${FLUTTER_CHANNEL}) on \"${OS}_${ARCH}\" ..."
63+
echo "Installing Flutter SDK version: ${FLUTTER_VERSION} (${FLUTTER_CHANNEL}) on \"${FLUTTER_OS}_${ARCH}\" ..."
5864

5965
# Linux
6066
# /stable /linux/ flutter_linux_2.10.2-stable.tar.xz
@@ -77,7 +83,7 @@ if [ ! -d "${FLUTTER_RUNNER_TOOL_CACHE}" ]; then
7783
fi
7884

7985
FLUTTER_BUILD="flutter_${FLUTTER_BUILD_OS}_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.${EXT}"
80-
FLUTTER_DOWNLOAD_URL="${FLUTTER_RELEASE_URL}/${FLUTTER_CHANNEL}/${FLUTTER_OS}/${FLUTTER_BUILD}"
86+
FLUTTER_DOWNLOAD_URL=${FLUTTER_DOWNLOAD_URL:-"${FLUTTER_RELEASE_URL}/${FLUTTER_CHANNEL}/${FLUTTER_OS}/${FLUTTER_BUILD}"}
8187

8288
echo "Downloading ${FLUTTER_DOWNLOAD_URL}"
8389

@@ -113,7 +119,7 @@ if [ ! -d "${FLUTTER_RUNNER_TOOL_CACHE}" ]; then
113119
exit 1
114120
fi
115121
else
116-
echo "Cache restored Flutter SDK version: ${FLUTTER_VERSION} (${FLUTTER_CHANNEL}) on \"${OS}_${ARCH}\""
122+
echo "Cache restored Flutter SDK version: ${FLUTTER_VERSION} (${FLUTTER_CHANNEL}) on \"${FLUTTER_OS}_${ARCH}\""
117123
fi
118124

119125
# Configure pub to use a fixed location.

0 commit comments

Comments
 (0)