mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
* changing felt script to fetch flutter * changing the clone_flutter.sh code * running integration tests with felt on cirrus. fetch framework in CI (not in local). * only run cirrus tests on chrome. fix a comma in the flutter command path * adding comments to public flags * use local engine parameter for flutter pub get * change flutter executable used for flutter drive command * fix a cleanup issue. address comments. add toolException. enable web in flutter * address reviwer comments. fix issue with local-engine * address reviwer comments. fix issue with local-engine * using engine/flutter/.dart_tools as clone directory. enabling clone script for local usage * clean flutter repo with felt clean. add a flag to skip cloning the repo. always clone the repo even for local development, unless this flag is set * fixing typos. updating readme for the new flag. * fix directory error * addressing reviewer comments
79 lines
2.3 KiB
Bash
Executable File
79 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
set -x
|
|
|
|
if [[ "$CIRRUS_CI" = false || -z $CIRRUS_CI ]]
|
|
then
|
|
echo "Cloning Flutter repo to local machine."
|
|
fi
|
|
|
|
if [[ -z $ENGINE_PATH ]]
|
|
then
|
|
echo "Please set ENGINE_PATH environment variable."
|
|
exit 1
|
|
fi
|
|
|
|
# Go to the engine git repo to get the date of the latest commit.
|
|
cd $ENGINE_PATH/src/flutter
|
|
|
|
# Special handling of release branches.
|
|
ENGINE_BRANCH_NAME=`git branch | grep '*' | cut -d ' ' -f2`
|
|
versionregex="^v[[:digit:]]+\."
|
|
ON_RELEASE_BRANCH=false
|
|
echo "Engine on branch $ENGINE_BRANCH_NAME"
|
|
if [[ $ENGINE_BRANCH_NAME =~ $versionregex ]]
|
|
then
|
|
echo "release branch $ENGINE_BRANCH_NAME"
|
|
ON_RELEASE_BRANCH=true
|
|
fi
|
|
|
|
# Get latest commit's time for the engine repo.
|
|
# Use date based on local time otherwise timezones might get mixed.
|
|
LATEST_COMMIT_TIME_ENGINE=`git log -1 --date=local --format="%cd"`
|
|
echo "Latest commit time on engine found as $LATEST_COMMIT_TIME_ENGINE"
|
|
|
|
# Check if there is an argument added for repo location.
|
|
# If not use the location that should be set by Cirrus/LUCI.
|
|
FLUTTER_CLONE_REPO_PATH=$1
|
|
|
|
if [[ -z $FLUTTER_CLONE_REPO_PATH ]]
|
|
then
|
|
if [[ -z $FRAMEWORK_PATH ]]
|
|
then
|
|
echo "Framework path should be set to run the script."
|
|
exit 1
|
|
fi
|
|
# Do rest of the task in the root directory
|
|
cd ~
|
|
mkdir -p $FRAMEWORK_PATH
|
|
cd $FRAMEWORK_PATH
|
|
else
|
|
cd $FLUTTER_CLONE_REPO_PATH
|
|
fi
|
|
|
|
# Clone the Flutter Framework.
|
|
git clone https://github.com/flutter/flutter.git
|
|
cd flutter
|
|
|
|
FRAMEWORK_BRANCH_NAME=`git branch | grep '*' | cut -d ' ' -f2`
|
|
if [[ "$ON_RELEASE_BRANCH" = true && ENGINE_BRANCH_NAME != FRAMEWORK_BRANCH_NAME ]]
|
|
then
|
|
echo "For a release framework and engine should be on the same version."
|
|
echo "Switching branches on Framework to from $FRAMEWORK_BRANCH_NAME to $ENGINE_BRANCH_NAME"
|
|
# Switch to the same version branch with the engine.
|
|
# If same version branch does not exits, fail.
|
|
SWITCH_RESULT=`git checkout $ENGINE_BRANCH_NAME` || true
|
|
if [[ -z "$SWITCH_RESULT" ]]
|
|
then
|
|
echo "$ENGINE_BRANCH_NAME Branch not found on framework. Quit."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Get the time of the youngest commit older than engine commit.
|
|
# Git log uses commit date not the author date.
|
|
# Before makes the comparison considering the timezone as well.
|
|
COMMIT_NO=`git log --before="$LATEST_COMMIT_TIME_ENGINE" -n 1 | grep commit | cut -d ' ' -f2`
|
|
echo "Using the flutter/flutter commit $COMMIT_NO";
|
|
git reset --hard $COMMIT_NO
|