[Updater] Send email when a new version is found
Bug: 109748616
Test: ./updater.sh check kotlinc googletest --json_output=/tmp/res.json
Test: out/soong/host/linux-x86/bin/external_updater_notifier \
--result_file=/tmp/res.json \
--history ~/updater/history \
--recipients=hhb@google.com
Change-Id: I27a4c1c2604d38106a08ce3eee1bcd03fdce80d7
diff --git a/git_updater.py b/git_updater.py
index 15f0360..81ef922 100644
--- a/git_updater.py
+++ b/git_updater.py
@@ -60,21 +60,28 @@
self._setup_remote()
if git_utils.is_commit(self.metadata.third_party.version):
# Update to remote head.
- return self._check_head()
+ self._check_head()
+ else:
+ # Update to latest version tag.
+ self._check_tag()
- # Update to latest version tag.
- return self._check_tag()
+ def get_current_version(self):
+ """Returns the latest version name recorded in METADATA."""
+ return self.metadata.third_party.version
+
+ def get_latest_version(self):
+ """Returns the latest version name in upstream."""
+ return self.new_version
def _check_tag(self):
tags = git_utils.list_remote_tags(self.proj_path,
self.upstream_remote_name)
- current_ver = self.metadata.third_party.version
+ current_ver = self.get_current_version()
self.new_version = updater_utils.get_latest_version(
current_ver, tags)
self.merge_from = self.new_version
print('Current version: {}. Latest version: {}'.format(
current_ver, self.new_version), end='')
- return self.new_version != current_ver
def _check_head(self):
commits = git_utils.get_commits_ahead(
@@ -82,7 +89,8 @@
self.android_remote_name + '/master')
if not commits:
- return False
+ self.new_version = self.get_current_version()
+ return
self.new_version = commits[0]
@@ -101,7 +109,6 @@
time_behind = datetime.datetime.now() - commit_time
print('{} commits ({} days) behind.'.format(
len(commits), time_behind.days), end='')
- return True
def _write_metadata(self, path):
updated_metadata = metadata_pb2.MetaData()
@@ -129,4 +136,6 @@
self.merge_from, len(commits), upstream_branch))
self._write_metadata(self.proj_path)
+ print("Running `git merge {merge_branch}`..."
+ .format(merge_branch=self.merge_from))
git_utils.merge(self.proj_path, self.merge_from)