Skip to content

Commit ba40fd6

Browse files
committed
Optimize Flutter SDK release manifest usage
1 parent 36673a6 commit ba40fd6

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

action.sh

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,24 @@ FLUTTER_CHANNEL=${2:-"stable"}
88
FLUTTER_OS=$OS
99

1010
# Flutter SDK release manifest
11-
FLUTTER_RELEASE_URL="https://storage.googleapis.com/flutter_infra_release/releases"
1211
FLUTTER_RELEASE_MANIFEST_URL="https://storage.googleapis.com/flutter_infra_release/releases/releases_$FLUTTER_OS.json"
13-
FLUTTER_RELEASE_MANIFEST_FILE="${RUNNER_TEMP}/flutter_release.json"
12+
FLUTTER_RELEASE_MANIFEST_FILE="${RUNNER_TEMP}/releases_$FLUTTER_OS.json"
13+
FLUTTER_RELEASE_BASE_URL="https://storage.googleapis.com/flutter_infra_release/releases"
14+
15+
# Check if Flutter SDK release manifest exists
16+
# Otherwise fetch and cache it
17+
if [ ! -f "$FLUTTER_RELEASE_MANIFEST_FILE" ]; then
18+
echo "Fetching Flutter SDK release manifest..."
19+
curl -fsSL "$FLUTTER_RELEASE_MANIFEST_URL" -o "$FLUTTER_RELEASE_MANIFEST_FILE"
20+
if [ $? -ne 0 ]; then
21+
echo -e "::warning::Failed to fetch Flutter SDK release manifest."
22+
fi
23+
elif [ -f "$FLUTTER_RELEASE_MANIFEST_FILE" ]; then
24+
echo "Using cached Flutter SDK release manifest."
25+
26+
# Obtain the base URL and override FLUTTER_RELEASE_BASE_URL
27+
FLUTTER_RELEASE_BASE_URL=$(jq -r ".base_url" "$FLUTTER_RELEASE_MANIFEST_FILE")
1428

15-
echo "Fetching Flutter SDK release manifest..."
16-
if curl -fsSL "$FLUTTER_RELEASE_MANIFEST_URL" -o "$FLUTTER_RELEASE_MANIFEST_FILE";
17-
then
1829
# Detect the latest version
1930
if [[ $FLUTTER_VERSION == "latest" ]]
2031
then
@@ -25,16 +36,16 @@ then
2536

2637
# Set the detected version
2738
FLUTTER_VERSION=$FLUTTER_RELEASE_VERSION
28-
FLUTTER_DOWNLOAD_URL="${FLUTTER_RELEASE_URL}/${FLUTTER_RELEASE_ARCHIVE}"
39+
FLUTTER_DOWNLOAD_URL="${FLUTTER_RELEASE_BASE_URL}/${FLUTTER_RELEASE_ARCHIVE}"
2940
else
3041
FLUTTER_RELEASE_SHA256=$(jq -r ".releases | map(select(.version == \"${FLUTTER_VERSION}\")) | .[0].sha256" "$FLUTTER_RELEASE_MANIFEST_FILE")
3142
FLUTTER_RELEASE_ARCHIVE=$(jq -r ".releases | map(select(.version == \"${FLUTTER_VERSION}\")) | .[0].archive" "$FLUTTER_RELEASE_MANIFEST_FILE")
3243

3344
# Set the detected version
34-
FLUTTER_DOWNLOAD_URL="${FLUTTER_RELEASE_URL}/${FLUTTER_RELEASE_ARCHIVE}"
45+
FLUTTER_DOWNLOAD_URL="${FLUTTER_RELEASE_BASE_URL}/${FLUTTER_RELEASE_ARCHIVE}"
3546
fi
3647
else
37-
echo -e "::warning::Failed to fetch Flutter SDK release manifest. Switched to using default fallback download strategy."
48+
echo -e "::warning::Switched to using default fallback download strategy."
3849
fi
3950

4051
# Apple Intel or Apple Silicon
@@ -86,7 +97,7 @@ if [ ! -d "${FLUTTER_RUNNER_TOOL_CACHE}" ]; then
8697
fi
8798

8899
FLUTTER_BUILD="flutter_${FLUTTER_BUILD_OS}_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.${EXT}"
89-
FLUTTER_DOWNLOAD_URL=${FLUTTER_DOWNLOAD_URL:-"${FLUTTER_RELEASE_URL}/${FLUTTER_CHANNEL}/${FLUTTER_OS}/${FLUTTER_BUILD}"}
100+
FLUTTER_DOWNLOAD_URL=${FLUTTER_DOWNLOAD_URL:-"${FLUTTER_RELEASE_BASE_URL}/${FLUTTER_CHANNEL}/${FLUTTER_OS}/${FLUTTER_BUILD}"}
90101

91102
# Download installation archive
92103
echo "Downloading ${FLUTTER_DOWNLOAD_URL}"

0 commit comments

Comments
 (0)