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-29 02:14:54 +0000 |
commit | 2b1b23dcb333b4faeb3a3a04ef8e892188bb21c9 (patch) | |
tree | 791c8f231e0541ac5d378a495eb3e1cc01ba7319 /cbuildbot/stages | |
parent | 567b7e6e4e78dd8139d295433cf8166be34baf41 (diff) | |
download | chromite-2b1b23dcb333b4faeb3a3a04ef8e892188bb21c9.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: I2863561b8e312aa5499fce9501c5215db0732f0b
Reviewed-on: https://chromium-review.googlesource.com/201233
Tested-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Diffstat (limited to 'cbuildbot/stages')
-rw-r--r-- | cbuildbot/stages/generic_stages.py | 9 | ||||
-rw-r--r-- | cbuildbot/stages/report_stages.py | 12 | ||||
-rwxr-xr-x | cbuildbot/stages/report_stages_unittest.py | 2 |
3 files changed, 17 insertions, 6 deletions
diff --git a/cbuildbot/stages/generic_stages.py b/cbuildbot/stages/generic_stages.py index 72153c898..9b2adcf06 100644 --- a/cbuildbot/stages/generic_stages.py +++ b/cbuildbot/stages/generic_stages.py @@ -677,17 +677,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/cbuildbot/stages/report_stages.py b/cbuildbot/stages/report_stages.py index 5f32f8a5d..45c7fd55f 100644 --- a/cbuildbot/stages/report_stages.py +++ b/cbuildbot/stages/report_stages.py @@ -328,11 +328,19 @@ class ReportStage(generic_stages.BuilderStage, run_archive_urls = self._UploadArchiveIndex(builder_run) if run_archive_urls: archive_urls.update(run_archive_urls) - # Also update the LATEST files, since this run did archive something. + + # Check if the builder_run is tied to any boards and if so get all + # upload urls. + if builder_run.config['boards']: + upload_urls = self._GetUploadUrls( + 'LATEST-*', board=builder_run.config['boards'][0]) + else: + upload_urls = [self.upload_url] 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/cbuildbot/stages/report_stages_unittest.py b/cbuildbot/stages/report_stages_unittest.py index 5cf563171..ad3290874 100755 --- a/cbuildbot/stages/report_stages_unittest.py +++ b/cbuildbot/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)) |