48 lines
1.4 KiB
Bash
Executable File
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
|