Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2496)

Unified Diff: tools/dartium/upload_steps.py

Issue 2976303002: Remove Dartium for TIP of origin/master (Closed)
Patch Set: Updated Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/dartium/update_version.py ('k') | tools/dartium/utils.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/dartium/upload_steps.py
diff --git a/tools/dartium/upload_steps.py b/tools/dartium/upload_steps.py
deleted file mode 100755
index f2cb43792eb4abb6a8189bb5be5f60fc978c3f44..0000000000000000000000000000000000000000
--- a/tools/dartium/upload_steps.py
+++ /dev/null
@@ -1,278 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (c) 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Steps to archive dartium, content_shell, and chromedriver from buildbots.
-
-Imported by buildbot_annotated_steps.py
-"""
-
-import imp
-import os
-import platform
-import re
-import subprocess
-import sys
-
-import dartium_bot_utils
-import archive
-
-BUILDER_NAME = 'BUILDBOT_BUILDERNAME'
-REVISION = 'BUILDBOT_REVISION'
-BUILDER_PATTERN = (r'^(dartium)-(mac|lucid64|lucid32|win)'
- r'-(full|inc|debug)(-ninja)?(-(be|dev|stable|integration))?$')
-NEW_BUILDER_PATTERN = (
- r'^dartium-(mac|linux|win)-(ia32|x64)(-inc)?-(be|dev|stable|integration)$')
-
-if platform.system() == 'Windows':
- GSUTIL = 'e:/b/build/scripts/slave/gsutil.bat'
-else:
- GSUTIL = '/b/build/scripts/slave/gsutil'
-ACL = 'public-read'
-GS_SITE = 'gs://'
-GS_URL = 'https://sandbox.google.com/storage/'
-GS_DIR = 'dartium-archive'
-LATEST = 'latest'
-CONTINUOUS = 'continuous'
-
-SRC_PATH = dartium_bot_utils.srcPath()
-DART_PATH = os.path.join(SRC_PATH, 'dart')
-
-bot_utils = imp.load_source('bot_utils',
- os.path.join(DART_PATH, 'tools', 'bots', 'bot_utils.py'))
-
-class BuildInfo(object):
- """
- name: A name for the build - the buildbot host if a buildbot.
- mode: 'Debug' or 'Release'
- arch: target architecture
- channel: the channel this build is happening on
- is_full: True if this is a full build.
- is_incremental: True if this is an incremental build.
-
- """
- def __init__(self, revision, version):
-
- self.revision = revision
- self.version = version
- self.name = os.environ[BUILDER_NAME]
- pattern = re.match(NEW_BUILDER_PATTERN, self.name)
- if pattern:
- self.arch = pattern.group(2)
- self.mode = 'Release'
- self.is_incremental = (pattern.group(3) == '-inc')
- self.is_full = not self.is_incremental
- self.channel = pattern.group(4)
- else:
- pattern = re.match(BUILDER_PATTERN, self.name)
- assert pattern
- self.arch = 'x64' if pattern.group(2) == 'lucid64' else 'ia32'
- self.mode = 'Debug' if pattern.group(3) == 'debug' else 'Release'
- self.is_incremental = '-inc' in self.name
- self.is_full = pattern.group(3) == 'full'
- self.channel = pattern.group(6) if pattern.group(6) else 'be'
-
-
-def ArchiveAndUpload(info, archive_latest=False):
- print '@@@BUILD_STEP dartium_generate_archive@@@'
- cwd = os.getcwd()
-
- dartium_bucket = info.name
- drt_bucket = dartium_bucket.replace('dartium', 'drt')
- chromedriver_bucket = dartium_bucket.replace('dartium', 'chromedriver')
- dartium_archive = dartium_bucket + '-' + info.version
- drt_archive = drt_bucket + '-' + info.version
- chromedriver_archive = chromedriver_bucket + '-' + info.version
- dartium_zip, drt_zip, chromedriver_zip = archive.Archive(
- SRC_PATH,
- info.mode,
- dartium_archive,
- drt_archive,
- chromedriver_archive)
-
- status = 0
- # Upload bleeding-edge builds to old dartium-archive bucket
- if info.channel == 'be':
- status = (OldUpload('dartium', dartium_bucket,
- os.path.abspath(dartium_zip),
- archive_latest=archive_latest)
- or OldUpload('drt', drt_bucket,
- os.path.abspath(drt_zip),
- archive_latest=archive_latest)
- or OldUpload('chromedriver', chromedriver_bucket,
- os.path.abspath(chromedriver_zip),
- archive_latest=archive_latest))
-
- # Upload to new dart-archive bucket using GCSNamer, but not incremental
- # or perf builder builds.
- if not info.is_incremental:
- Upload('dartium', os.path.abspath(dartium_zip),
- info, archive_latest=archive_latest)
- Upload('drt', os.path.abspath(drt_zip),
- info, archive_latest=archive_latest)
- Upload('chromedriver', os.path.abspath(chromedriver_zip),
- info, archive_latest=archive_latest)
-
- os.chdir(cwd)
- if status != 0:
- print '@@@STEP_FAILURE@@@'
- return status
-
-
-def OldUpload(module, bucket, zip_file, archive_latest=False):
- """Upload a zip file to the old bucket gs://dartium-archive/
- """
- # TODO(whesse): Remove the old archiving code (OldUpload, OldUploadFile,
- # and constants they use) once everything points to the new location.
- status = 0
- _, filename = os.path.split(zip_file)
- if not archive_latest:
- target = '/'.join([GS_DIR, bucket, filename])
- print '@@@BUILD_STEP %s_upload_archive_old@@@' % module
- status = OldUploadFile(zip_file, GS_SITE + target)
- print '@@@STEP_LINK@download@' + GS_URL + target + '@@@'
- else:
- print '@@@BUILD_STEP %s_upload_latest_old@@@' % module
- # Clear latest for this build type.
- old = '/'.join([GS_DIR, LATEST, bucket + '-*'])
- old_archives = ListArchives(GS_SITE + old)
-
- # Upload the new latest and remove unnecessary old ones.
- target = GS_SITE + '/'.join([GS_DIR, LATEST, filename])
- status = OldUploadFile(zip_file, target)
- if status == 0:
- RemoveArchives(
- [iarch for iarch in old_archives if iarch != target])
- else:
- print 'Upload failed'
-
- # Upload unversioned name to continuous site for incremental
- # builds.
- if '-inc' in bucket:
- continuous_name = bucket[:bucket.find('-inc')]
- target = GS_SITE + '/'.join([GS_DIR, CONTINUOUS,
- continuous_name + '.zip'])
- status = OldUploadFile(zip_file, target)
-
- print ('@@@BUILD_STEP %s_upload_archive is over (status = %s)@@@' %
- (module, status))
- return status
-
-
-def Upload(module, zip_file, info, archive_latest=False):
- """Upload a zip file to cloud storage bucket gs://dart-archive/
- """
- print '@@@BUILD_STEP %s_upload_archive @@@' % module
- revision = 'latest' if archive_latest else info.revision
- name = module.replace('drt', 'content_shell')
- namer = bot_utils.GCSNamer(info.channel, bot_utils.ReleaseType.RAW)
- remote_path = namer.dartium_variant_zipfilepath(revision,
- name,
- sys.platform,
- info.arch,
- info.mode.lower())
- UploadFile(zip_file, remote_path, checksum_files=True)
-
- print '@@@STEP_LINK@download@' + remote_path + '@@@'
-
-
-def OldUploadFile(source, target):
- """Upload an archive zip file to Google storage.
- """
-
- # Upload file.
- cmd = [GSUTIL, 'cp', source, target]
- (status, output) = ExecuteCommand(cmd)
- if status != 0:
- return status
- print 'Uploaded: ' + output
-
- # Set ACL.
- if ACL is not None:
- cmd = [GSUTIL, 'acl', 'set', ACL, target]
- (status, output) = ExecuteCommand(cmd)
- return status
-
-
-def UploadFile(local_path, remote_path, checksum_files=False):
- # Copy it to the new unified gs://dart-archive bucket
- gsutil = bot_utils.GSUtil()
- gsutil.upload(local_path, remote_path, public=True)
- if checksum_files:
- # 'local_path' may have a different filename than 'remote_path'. So we need
- # to make sure the *.md5sum file contains the correct name.
- assert '/' in remote_path and not remote_path.endswith('/')
- mangled_filename = remote_path[remote_path.rfind('/') + 1:]
- local_md5sum = bot_utils.CreateMD5ChecksumFile(local_path,
- mangled_filename)
- gsutil.upload(local_md5sum, remote_path + '.md5sum', public=True)
- local_sha256 = bot_utils.CreateSha256ChecksumFile(local_path,
- mangled_filename)
- gsutil.upload(local_sha256, remote_path + '.sha256sum', public=True)
-
-def ExecuteCommand(cmd):
- """Execute a command in a subprocess.
- """
- print 'Executing: ' + ' '.join(cmd)
- try:
- pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- (output, error) = pipe.communicate()
- if pipe.returncode != 0:
- print 'Execution failed: ' + str(error)
- return (pipe.returncode, output)
- except:
- import traceback
- print 'Execution raised exception:', traceback.format_exc()
- return (-1, '')
-
-
-def UploadDartTestsResults(layout_test_results_dir, name, version,
- component, checked):
- """Uploads test results to google storage.
- """
- print ('@@@BUILD_STEP archive %s_layout_%s_tests results@@@' %
- (component, checked))
- dir_name = os.path.dirname(layout_test_results_dir)
- base_name = os.path.basename(layout_test_results_dir)
- cwd = os.getcwd()
- try:
- os.chdir(dir_name)
-
- archive_name = 'layout_test_results.zip'
- archive.ZipDir(archive_name, base_name)
-
- target = '/'.join([GS_DIR, 'layout-test-results', name, component + '-' +
- checked + '-' + version + '.zip'])
- status = OldUploadFile(os.path.abspath(archive_name), GS_SITE + target)
- os.remove(archive_name)
- if status == 0:
- print ('@@@STEP_LINK@download@' + GS_URL + target + '@@@')
- else:
- print '@@@STEP_FAILURE@@@'
- except:
- print '@@@STEP_FAILURE@@@'
- os.chdir(cwd)
-
-
-def ListArchives(pattern):
- """List the contents in Google storage matching the file pattern.
- """
- cmd = [GSUTIL, 'ls', pattern]
- (status, output) = ExecuteCommand(cmd)
- if status != 0:
- return []
- return output.split(os.linesep)
-
-
-def RemoveArchives(archives):
- """Remove the list of archives in Google storage.
- """
- for archive in archives:
- if archive.find(GS_SITE) == 0:
- cmd = [GSUTIL, 'rm', archive.rstrip()]
- (status, _) = ExecuteCommand(cmd)
- if status != 0:
- return status
- return 0
« no previous file with comments | « tools/dartium/update_version.py ('k') | tools/dartium/utils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698