xworkmate-app/scripts/ci/install_flutter_sdk.sh
2026-03-21 10:08:12 +08:00

48 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
version="${1:?flutter version is required}"
runner_temp="${RUNNER_TEMP:-/tmp}"
install_root="$runner_temp/flutter-sdk"
archive_name="flutter_linux_${version}-stable.tar.xz"
case "${RUNNER_OS:-$(uname -s)}" in
Linux)
archive_name="flutter_linux_${version}-stable.tar.xz"
download_url="https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/${archive_name}"
;;
macOS|Darwin)
if [[ "$(uname -m)" == "arm64" ]]; then
archive_name="flutter_macos_arm64_${version}-stable.zip"
else
archive_name="flutter_macos_${version}-stable.zip"
fi
download_url="https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/${archive_name}"
;;
*)
echo "Unsupported OS for Flutter install: ${RUNNER_OS:-$(uname -s)}" >&2
exit 1
;;
esac
mkdir -p "$install_root"
if [[ ! -x "$install_root/flutter/bin/flutter" ]]; then
archive_path="$runner_temp/$archive_name"
curl -fsSL "$download_url" -o "$archive_path"
rm -rf "$install_root/flutter"
case "$archive_name" in
*.tar.xz)
tar -xJf "$archive_path" -C "$install_root"
;;
*.zip)
unzip -q "$archive_path" -d "$install_root"
;;
esac
fi
echo "$install_root/flutter/bin" >> "$GITHUB_PATH"
"$install_root/flutter/bin/flutter" --disable-analytics
"$install_root/flutter/bin/flutter" config --no-analytics
"$install_root/flutter/bin/flutter" --version