| #!/bin/bash |
| set -e |
| set -x |
| |
| 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 |
| |
| ENGINE_COMMIT=`git rev-parse HEAD` |
| echo "Using engine commit: $ENGINE_COMMIT" |
| |
| if [[ -z $FLUTTER_CLONE_REPO_PATH ]] |
| then |
| echo "Please set FLUTTER_CLONE_REPO_PATH environment variable." |
| exit 1 |
| else |
| cd $FLUTTER_CLONE_REPO_PATH |
| fi |
| |
| if [[ $GIT_BRANCH =~ ^flutter-.*-candidate.*$ ]] |
| then |
| # Coming from presubmit and assuming the correct branch has been already checked out. |
| COMMIT_NO=`git rev-parse HEAD` |
| else |
| # Try to get release branch from the checkout. |
| RELEASE_BRANCH=`git branch -a --contains $ENGINE_COMMIT | grep 'flutter-.*-candidate.*' || true` |
| if [[ -z $RELEASE_BRANCH ]] |
| then |
| # If this is not a release branch commit 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" |
| |
| # 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` |
| else |
| COMMIT_NO=`git rev-parse $RELEASE_BRANCH` |
| git checkout $RELEASE_BRANCH |
| fi |
| fi |
| |
| echo "Using the flutter/flutter commit $COMMIT_NO"; |
| git reset --hard $COMMIT_NO |
| # Write the commit number to a file. This file will be read by the LUCI recipe. |
| echo "$COMMIT_NO" >> flutter_ref.txt |
| |
| # Print out the flutter version for troubleshooting |
| $FLUTTER_CLONE_REPO_PATH/bin/flutter --version -v |