def CreateCoverageFileAndUpload(options): """Create coverage file with bbcov2lcov binary and upload to www dir.""" # Assert log files exist log_files = glob.glob(os.path.join(options.dynamorio_log_dir, '*.log')) if not log_files: print 'No coverage log files found.' return 1 if (options.browser_shard_index and options.test_to_upload in options.sharded_tests): coverage_info = os.path.join( options.build_dir, 'coverage_%s.info' % options.browser_shard_index) else: coverage_info = os.path.join(options.build_dir, COVERAGE_INFO) coverage_info = os.path.normpath(coverage_info) if os.path.isfile(coverage_info): os.remove(coverage_info) bbcov2lcov_binary = GetExecutableName( os.path.join(options.dynamorio_dir, 'tools', 'bin32', 'bbcov2lcov')) cmd = [ bbcov2lcov_binary, '--dir', options.dynamorio_log_dir, '--output', coverage_info ] RunCmd(cmd) # Delete log files. log_files = glob.glob(os.path.join(options.dynamorio_log_dir, '*.log')) for log_file in log_files: os.remove(log_file) # Assert coverage.info file exist if not os.path.isfile(coverage_info): print 'Failed to create coverage.info file.' return 1 # Upload coverage file. cov_dir = options.test_to_upload.replace('_', '') + COVERAGE_DIR_POSTFIX dest = os.path.join(options.www_dir, options.platform, options.build_id, cov_dir) dest = os.path.normpath(dest) if chromium_utils.IsWindows(): print('chromium_utils.CopyFileToDir(%s, %s)' % (coverage_info, dest)) chromium_utils.MaybeMakeDirectory(dest) chromium_utils.CopyFileToDir(coverage_info, dest) elif chromium_utils.IsLinux() or chromium_utils.IsMac(): print 'SshCopyFiles(%s, %s, %s)' % (coverage_info, options.host, dest) chromium_utils.SshMakeDirectory(options.host, dest) chromium_utils.MakeWorldReadable(coverage_info) chromium_utils.SshCopyFiles(coverage_info, options.host, dest) os.unlink(coverage_info) else: raise NotImplementedError('Platform "%s" is not currently supported.' % sys.platform) return 0
def UploadFile(src, dst, force_ssh=False): www_base = config.Archive.www_dir_base full_dst = os.path.join(www_base, dst) dst_dir = os.path.dirname(full_dst) if chromium_utils.IsWindows() and not force_ssh: print 'copying (%s) to (%s)' % (src, full_dst) chromium_utils.MaybeMakeDirectory(dst_dir) shutil.copyfile(src, full_dst) print 'done.' else: host = config.Archive.archive_host print 'copying (%s) to (%s) on (%s)' % (src, full_dst, host) chromium_utils.SshMakeDirectory(host, dst_dir) chromium_utils.SshCopyFiles(src, host, full_dst) print 'done.'
def MaybeMakeDirectoryOnArchiveHost(dest_dir): """A wrapper method to create a directory on the archive host. It calls MaybeMakeDirectory on Windows and SshMakeDirectory on Linux/Mac. Args: dest_dir: destination directory on the host. """ host = config.Archive.archive_host if chromium_utils.IsWindows(): chromium_utils.MaybeMakeDirectory(dest_dir) print 'saving results to %s' % dest_dir elif chromium_utils.IsLinux() or chromium_utils.IsMac(): chromium_utils.SshMakeDirectory(host, dest_dir) print 'saving results to "%s" on "%s"' % (dest_dir, host) else: raise NotImplementedError( 'Platform "%s" is not currently supported.' % sys.platform)
def MySshMakeDirectory(self, host, destination, gs_base): if not gs_base or self._dual_upload: chromium_utils.SshMakeDirectory(host, destination)
# Only keep the last 15 number (that means we could have 30 due to _old files # if someone forced a respin of every single one) trim_build_list = build_list[:-15] for x in trim_build_list: prune_name = zip_template.replace('.zip', '_%d.zip' % x) print 'Pruning build %d' % x chromium_utils.RemoveFile(stage_dir, prune_name) chromium_utils.RemoveFile(stage_dir, prune_name.replace('.zip', '_old.zip')) www_dir = config.Archive.www_dir_base + 'v8_archive/' + build_version archive_host = 'master3.golo.chromium.org' print 'SshMakeDirectory(%s, %s)' % (archive_host, www_dir) print 'SshCopyFiles(%s, %s, %s)' % (versioned_file, archive_host, www_dir) chromium_utils.SshMakeDirectory(archive_host, www_dir) MakeWorldReadable(versioned_file) chromium_utils.SshCopyFiles(versioned_file, archive_host, www_dir) # os.unlink(versioned_file) # Files are created umask 077 by default, so make it world-readable # before pushing to web server. return 0 if '__main__' == __name__: option_parser = optparse.OptionParser() option_parser.add_option('', '--target', default='Release', help='build target to archive (Debug or Release)')