blob: 46f9f0cbc5da901c49d211a702bf7c1605526882 [file] [log] [blame] [edit]
#!/usr/bin/env bash
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
# Analyze Dart code in various Flutter repos.
set -ex
checkout=$(pwd)
dart=$checkout/out/ReleaseX64/dart-sdk/bin/dart
sdk=$checkout/out/ReleaseX64/dart-sdk
tmpdir=$(mktemp -d)
cleanup() {
rm -rf "$tmpdir"
}
trap cleanup EXIT HUP INT QUIT TERM PIPE
cd "$tmpdir"
analyze_engine() {
echo Analyzing Flutter engine lib/web_ui...
pushd flutter/engine/src/flutter/lib/web_ui
$dart pub get
$dart analyze --suppress-analytics --fatal-infos
popd
}
analyze_flutter_sdk() {
echo Configuring Flutter SDK and updating packages...
pushd flutter
bin/flutter config --no-analytics
bin/flutter update-packages
# Run a subset of the tests run by [flutter]/dev/bots/analyze.dart.
# Run only the tests that use the built dart analyzer.
echo Analyzing Flutter SDK...
bin/flutter analyze --flutter-repo --dart-sdk $sdk
bin/flutter analyze --flutter-repo --watch --benchmark --dart-sdk $sdk
echo Analyzing mega gallery...
mkdir gallery
$dart dev/tools/mega_gallery.dart --out gallery
pushd gallery
../bin/flutter analyze --watch --benchmark --dart-sdk $sdk
popd
echo Testing data-driven fixes...
$dart fix --suppress-analytics packages/flutter/test_fixes --compare-to-golden
popd
}
analyze_flutter_packages() {
export PATH="$PATH":"$tmpdir/flutter/bin"
flutter --version
echo Cloning flutter/packages/...
git clone --single-branch -vv https://github.com/flutter/packages
pushd packages
echo "Validating the tool's source"
(cd script/tool; dart pub --suppress-analytics get)
(cd script/tool; dart analyze --suppress-analytics --fatal-infos)
echo Analyzing flutter/packages...
# Invoke the repo's analysis script.
# Use --downgrade to avoid potential breakage from transitive
# dependency publishing. See
# https://github.com/flutter/flutter/issues/129633
dart run script/tool/bin/flutter_plugin_tools.dart analyze \
--downgrade \
--analysis-sdk $sdk \
--custom-analysis=script/configs/custom_analysis.yaml \
--base-branch=main
popd
}
echo Cloning flutter/flutter...
git clone --single-branch -vv \
https://dart.googlesource.com/external/github.com/flutter/flutter
analyze_engine
analyze_flutter_sdk
analyze_flutter_packages