| #!/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 |