blob: 30c166b4c6669d17da45eede96bbf840b336369a [file] [log] [blame]
Fedor Korotkov0d6e4882018-03-15 20:50:08 -04001#!/bin/bash
Greg Spencer69af1b72018-08-20 12:17:49 -07002set -e
Fedor Korotkov0d6e4882018-03-15 20:50:08 -04003
Jenn Magder15b80292019-09-30 11:22:52 -07004readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
5readonly REPO_DIR="$(dirname "$SCRIPT_DIR")"
Fedor Korotkov0d6e4882018-03-15 20:50:08 -04006
Greg Spencer69af1b72018-08-20 12:17:49 -07007source "$SCRIPT_DIR/common.sh"
Fedor Korotkov0d6e4882018-03-15 20:50:08 -04008
stuartmorgan7027e9d2020-09-01 16:36:02 -04009if [ "$(expr substr $(uname -s) 1 5)" == "MINGW" ]; then
10 PUB=pub.bat
11else
12 PUB=pub
13fi
14
Michael Klimushynee4cb3b2019-12-05 14:29:44 -080015# Plugins that deliberately use their own analysis_options.yaml.
16#
17# This list should only be deleted from, never added to. This only exists
18# because we adopted stricter analysis rules recently and needed to exclude
19# already failing packages to start linting the repo as a whole.
20#
21# TODO(mklim): Remove everything from this list. https://github.com/flutter/flutter/issues/45440
22CUSTOM_ANALYSIS_PLUGINS=(
23 "in_app_purchase"
24 "camera"
David Iglesias66095bf2020-04-16 17:33:47 -070025 "video_player/video_player_web"
David Iglesias027827f2020-08-18 19:06:45 -070026 "google_maps_flutter/google_maps_flutter_web"
Michael Klimushynee4cb3b2019-12-05 14:29:44 -080027)
28# Comma-separated string of the list above
29readonly CUSTOM_FLAG=$(IFS=, ; echo "${CUSTOM_ANALYSIS_PLUGINS[*]}")
Greg Spencer69af1b72018-08-20 12:17:49 -070030# Set some default actions if run without arguments.
31ACTIONS=("$@")
32if [[ "${#ACTIONS[@]}" == 0 ]]; then
Michael Klimushynee4cb3b2019-12-05 14:29:44 -080033 ACTIONS=("analyze" "--custom-analysis" "$CUSTOM_FLAG" "test" "java-test")
Sebastian Rothe18356f2019-12-06 08:17:24 +000034elif [[ "${ACTIONS[@]}" == "analyze" ]]; then
Michael Klimushynee4cb3b2019-12-05 14:29:44 -080035 ACTIONS=("analyze" "--custom-analysis" "$CUSTOM_FLAG")
Greg Spencer69af1b72018-08-20 12:17:49 -070036fi
37
38BRANCH_NAME="${BRANCH_NAME:-"$(git rev-parse --abbrev-ref HEAD)"}"
Dan Fieldd93d4082020-08-17 23:49:31 -070039
40# This has to be turned into a list and then split out to the command line,
41# otherwise it gets treated as a single argument.
42PLUGIN_SHARDING=($PLUGIN_SHARDING)
43
Greg Spencer69af1b72018-08-20 12:17:49 -070044if [[ "${BRANCH_NAME}" == "master" ]]; then
Fedor Korotkov0d6e4882018-03-15 20:50:08 -040045 echo "Running for all packages"
stuartmorgan7027e9d2020-09-01 16:36:02 -040046 (cd "$REPO_DIR" && $PUB global run flutter_plugin_tools "${ACTIONS[@]}" ${PLUGIN_SHARDING[@]})
Fedor Korotkov0d6e4882018-03-15 20:50:08 -040047else
Greg Spencer69af1b72018-08-20 12:17:49 -070048 # Sets CHANGED_PACKAGES
49 check_changed_packages
Fedor Korotkov81ef8e42018-04-03 11:34:20 -040050
Greg Spencer69af1b72018-08-20 12:17:49 -070051 if [[ "$CHANGED_PACKAGES" == "" ]]; then
Maurice Parrishe2f9acc2019-06-24 16:17:59 -070052 echo "No changes detected in packages."
Collin Jackson3e271bc2019-10-17 13:18:24 -070053 echo "Running for all packages"
stuartmorgan7027e9d2020-09-01 16:36:02 -040054 (cd "$REPO_DIR" && $PUB global run flutter_plugin_tools "${ACTIONS[@]}" ${PLUGIN_SHARDING[@]})
Fedor Korotkov0d6e4882018-03-15 20:50:08 -040055 else
Collin Jackson3e271bc2019-10-17 13:18:24 -070056 echo running "${ACTIONS[@]}"
stuartmorgan7027e9d2020-09-01 16:36:02 -040057 (cd "$REPO_DIR" && $PUB global run flutter_plugin_tools "${ACTIONS[@]}" --plugins="$CHANGED_PACKAGES" ${PLUGIN_SHARDING[@]})
Kaushik Iska02ff5682019-07-01 14:01:34 -070058 echo "Running version check for changed packages"
stuartmorgan7027e9d2020-09-01 16:36:02 -040059 (cd "$REPO_DIR" && $PUB global run flutter_plugin_tools version-check --base_sha="$(get_branch_base_sha)")
Fedor Korotkov0d6e4882018-03-15 20:50:08 -040060 fi
61fi