@@ -8,13 +8,24 @@ FLUTTER_CHANNEL=${2:-"stable"}
88FLUTTER_OS=$OS
99
1010# Flutter SDK release manifest
11- FLUTTER_RELEASE_URL=" https://storage.googleapis.com/flutter_infra_release/releases"
1211FLUTTER_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
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
3647else
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."
3849fi
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