blob: b91b1933a032f0690e31f2b9e542f8a2a77ec01d [file] [log] [blame]
#!/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