diff options
author | Simran Basi <sbasi@chromium.org> | 2014-05-20 14:40:16 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-05-23 04:59:19 +0000 |
commit | 1c2d38ac06521e2b1d7066fc1c76cf91446563be (patch) | |
tree | ab7dda7830baa40b40a7361eecf9e74e91eb89b8 /buildbot | |
parent | d379d3bdff707e860beec4455cd1005598827a4f (diff) | |
download | chromite-1c2d38ac06521e2b1d7066fc1c76cf91446563be.tar.gz |
Copy LATEST markers to extra upload archives.
Currently we don't upload the LATEST markers. This change looks
up the board for each builder_run in the report stage and also
uploads the LATEST marker to the extra archives if there are any.
BUG=chromium:375354
TEST=Rambi-paladin trybot run. sandybridge-ivybridge-release-group
trybot run. report_stages_unittest.
Change-Id: I2a1110e65b9b83ff3717ef55111c9addff567281
Reviewed-on: https://chromium-review.googlesource.com/200653
Tested-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Diffstat (limited to 'buildbot')
-rw-r--r-- | buildbot/cbuildbot_archive.py | 20 | ||||
-rw-r--r-- | buildbot/stages/generic_stages.py | 9 | ||||
-rw-r--r-- | buildbot/stages/report_stages.py | 5 | ||||
-rwxr-xr-x | buildbot/stages/report_stages_unittest.py | 2 |
4 files changed, 23 insertions, 13 deletions
diff --git a/buildbot/cbuildbot_archive.py b/buildbot/cbuildbot_archive.py index dd4614793..44092c205 100644 --- a/buildbot/cbuildbot_archive.py +++ b/buildbot/cbuildbot_archive.py @@ -155,13 +155,16 @@ class Archive(object): osutils.SafeMakedirs(self.archive_path) - def UpdateLatestMarkers(self, manifest_branch, debug): + def UpdateLatestMarkers(self, manifest_branch, debug, upload_urls=None): """Update the LATEST markers in GS archive area. Args: manifest_branch: The name of the branch in the manifest for this run. debug: Boolean debug value for this run. + upload_urls: Google storage urls to upload the Latest Markers to. """ + if not upload_urls: + upload_urls = [self.upload_url] # self.version will be one of these forms, shown through examples: # R35-1234.5.6 or R35-1234.5.6-b123. In either case, we want "1234.5.6". version_marker = self.version.split('-')[1] @@ -169,10 +172,11 @@ class Archive(object): filenames = ('LATEST-%s' % manifest_branch, 'LATEST-%s' % version_marker) base_archive_path = os.path.dirname(self.archive_path) - base_upload_url = os.path.dirname(self.upload_url) - for filename in filenames: - latest_path = os.path.join(base_archive_path, filename) - osutils.WriteFile(latest_path, self.version, mode='w') - commands.UploadArchivedFile( - base_archive_path, [base_upload_url], filename, - debug, acl=self.upload_acl) + base_upload_urls = [os.path.dirname(url) for url in upload_urls] + for base_upload_url in base_upload_urls: + for filename in filenames: + latest_path = os.path.join(base_archive_path, filename) + osutils.WriteFile(latest_path, self.version, mode='w') + commands.UploadArchivedFile( + base_archive_path, [base_upload_url], filename, + debug, acl=self.upload_acl) diff --git a/buildbot/stages/generic_stages.py b/buildbot/stages/generic_stages.py index 365743cc1..f650a0dbd 100644 --- a/buildbot/stages/generic_stages.py +++ b/buildbot/stages/generic_stages.py @@ -692,17 +692,20 @@ class ArchivingStageMixin(object): return True return False - def _GetUploadUrls(self, filename): + def _GetUploadUrls(self, filename, board=None): """Returns a list of all urls for which to upload filename to. Args: filename: The filename of the file we want to upload. + board: Board whose overlay to search for the artifacts.json file. + If none, self._current_board is used if it exists. """ urls = [self.upload_url] if (not self._IsInUploadBlacklist(filename) and - hasattr(self, '_current_board')): + (hasattr(self, '_current_board') or board)): + board = board if board else self._current_board custom_artifacts_file = portage_utilities.ReadOverlayFile( - 'scripts/artifacts.json', board=self._current_board) + 'scripts/artifacts.json', board=board) if custom_artifacts_file is not None: json_file = json.loads(custom_artifacts_file) for url in json_file.get('extra_upload_urls', []): diff --git a/buildbot/stages/report_stages.py b/buildbot/stages/report_stages.py index 5e9ded0ee..61bb5d295 100644 --- a/buildbot/stages/report_stages.py +++ b/buildbot/stages/report_stages.py @@ -330,9 +330,12 @@ class ReportStage(generic_stages.BuilderStage, archive_urls.update(run_archive_urls) # Also update the LATEST files, since this run did archive something. + upload_urls = self._GetUploadUrls( + 'LATEST-*', board=builder_run.config['boards'][0]) archive = builder_run.GetArchive() archive.UpdateLatestMarkers(builder_run.manifest_branch, - builder_run.debug) + builder_run.debug, + upload_urls=upload_urls) version = getattr(self._run.attrs, 'release_tag', '') results_lib.Results.Report(sys.stdout, archive_urls=archive_urls, diff --git a/buildbot/stages/report_stages_unittest.py b/buildbot/stages/report_stages_unittest.py index 7952364cf..5505783be 100755 --- a/buildbot/stages/report_stages_unittest.py +++ b/buildbot/stages/report_stages_unittest.py @@ -35,7 +35,7 @@ class ReportStageTest(generic_stages_unittest.AbstractStageTest): RELEASE_TAG = '' def setUp(self): - for cmd in ((osutils, 'ReadFile'), (osutils, 'WriteFile'), + for cmd in ((osutils, 'WriteFile'), (commands, 'UploadArchivedFile'), (alerts, 'SendEmail')): self.StartPatcher(mock.patch.object(*cmd, autospec=True)) |