Beispiel #1
0
def repackage_single_revision(revision_map, verify_run, staging_dir, context,
                              cp_num):
    """Repackages a single Chrome build for manual bisect."""
    archive_name = '%s_%s' % (context.file_prefix, cp_num)
    file_archive = os.path.join(staging_dir, archive_name)
    zip_file_name = '%s.zip' % (file_archive)
    download_build(cp_num, revision_map, zip_file_name, context)
    extract_dir = os.path.join(staging_dir, archive_name)
    bisect_repackage_utils.ExtractZip(zip_file_name, extract_dir)
    extracted_folder = os.path.join(extract_dir, context.file_prefix)
    if CHROME_WHITELIST_FILES[context.archive]:
        whitelist_files = get_whitelist_files(extracted_folder,
                                              context.archive)
        files_to_include = whitelist_files + CHROME_REQUIRED_FILES[
            context.archive]
    else:
        files_to_include = CHROME_REQUIRED_FILES[context.archive]
    (zip_dir, zip_file,
     tmp_archive) = make_lightweight_archive(extracted_folder, archive_name,
                                             files_to_include, context,
                                             staging_dir)

    if verify_run:
        verify_chrome_run(zip_dir)

    upload_build(zip_file, context)
    # Removed temporary files created during repackaging process.
    remove_created_files_and_path([zip_file_name],
                                  [zip_dir, extract_dir, tmp_archive])
Beispiel #2
0
def repackage_single_revision(revision_map, verify_run, staging_dir,
                              context, cp_num):
  """Repackages a single Chrome build for manual bisect."""
  archive_name = '%s_%s' %(context.file_prefix, cp_num)
  file_archive = os.path.join(staging_dir, archive_name)
  zip_file_name = '%s.zip' % (file_archive)
  if not download_build(cp_num, revision_map, zip_file_name, context):
    return

  extract_dir = os.path.join(staging_dir, archive_name)
  is_android = context.archive in ['arm', 'arm64']
  files_to_include = CHROME_REQUIRED_FILES.get(context.archive)

  dir_path_in_zip = context.GetExtractedDir()
  extract_file_list = []
  # Only extract required files and directories.
  # And when there is no pattern checking for files.
  if not CHROME_WHITELIST_FILES.get(context.archive):
    for f in files_to_include:
      if f.endswith('/'):
        f += '*'
      extract_file_list.append(os.path.join(dir_path_in_zip, f))

  bisect_repackage_utils.ExtractZip(
      zip_file_name, extract_dir, extract_file_list)
  extracted_folder = os.path.join(extract_dir, dir_path_in_zip)

  if CHROME_WHITELIST_FILES.get(context.archive):
    whitelist_files = get_whitelist_files(extracted_folder, context.archive)
    files_to_include += whitelist_files

  (zip_dir, zip_file, tmp_archive) = make_lightweight_archive(extracted_folder,
                                                              archive_name,
                                                              files_to_include,
                                                              context,
                                                              staging_dir,
                                                              is_android)

  if verify_run:
    verify_chrome_run(zip_dir)
  upload_build(zip_file, context)
  with open('upload_revs.json', 'r+') as rfile:
    update_map = json.load(rfile)
    update_map[str(cp_num)] = 'Done'
    rfile.seek(0)
    json.dump(update_map, rfile)
    rfile.truncate()
  # Removed temporary files created during repackaging process.
  remove_created_files_and_path([zip_file_name],
                                [zip_dir, extract_dir, tmp_archive])
def repackage_single_revision(revision_map, verify_run, staging_dir, context,
                              cp_num):
    """Repackages a single Chrome build for manual bisect."""
    archive_name = '%s_%s' % (context.file_prefix, cp_num)
    file_archive = os.path.join(staging_dir, archive_name)
    zip_file_name = '%s.zip' % (file_archive)

    download_build(cp_num, revision_map, zip_file_name, context)

    extract_dir = os.path.join(staging_dir, archive_name)
    is_android = context.archive in ['arm', 'arm64']
    if CHROME_WHITELIST_FILES.get(context.archive):
        whitelist_files = get_whitelist_files(extracted_folder,
                                              context.archive)
        files_to_include = (whitelist_files +
                            CHROME_REQUIRED_FILES.get(context.archive))
    else:
        files_to_include = CHROME_REQUIRED_FILES.get(context.archive)

    dir_path_in_zip = context.GetExtractedDir()
    extract_file_list = []
    # Only extract required files and directories.
    if is_android:
        for f in files_to_include:
            if f.endswith('/'):
                f += '*'
            extract_file_list.append(os.path.join(dir_path_in_zip, f))
    bisect_repackage_utils.ExtractZip(zip_file_name, extract_dir,
                                      extract_file_list)
    extracted_folder = os.path.join(extract_dir, dir_path_in_zip)

    (zip_dir, zip_file,
     tmp_archive) = make_lightweight_archive(extracted_folder, archive_name,
                                             files_to_include, context,
                                             staging_dir, is_android)

    if verify_run:
        verify_chrome_run(zip_dir)
    upload_build(zip_file, context)
    # Removed temporary files created during repackaging process.
    remove_created_files_and_path([zip_file_name],
                                  [zip_dir, extract_dir, tmp_archive])