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

Unified Diff: tools/signing_script.py

Issue 1353373002: Fix obsolete gsutil command in scripts. Delete editor signing script. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Address comment. Created 5 years, 3 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/upload_steps.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/signing_script.py
diff --git a/tools/signing_script.py b/tools/signing_script.py
deleted file mode 100755
index 5eefe1b96b2be3ede6135675d598e48281c6a67a..0000000000000000000000000000000000000000
--- a/tools/signing_script.py
+++ /dev/null
@@ -1,286 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-import imp
-import optparse
-import os
-import subprocess
-import sys
-
-DART_DIR = os.path.dirname(os.path.dirname(__file__))
-GSUTIL = os.path.join(DART_DIR, 'third_party', 'gsutil', 'gsutil')
-BOT_UTILS = os.path.join(DART_DIR, 'tools', 'bots', 'bot_utils.py')
-BASENAME_PATTERN = 'darteditor-%(system)s-%(bits)s'
-FILENAME_PATTERN = BASENAME_PATTERN + '.zip'
-
-DRY_RUN = False
-
-bot_utils = imp.load_source('bot_utils', BOT_UTILS)
-
-class ChangedWorkingDirectory(object):
- def __init__(self, working_directory):
- self._working_directory = working_directory
-
- def __enter__(self):
- self._old_cwd = os.getcwd()
- print "Enter directory = ", self._working_directory
- if not DRY_RUN:
- os.chdir(self._working_directory)
-
- def __exit__(self, *_):
- print "Enter directory = ", self._old_cwd
- os.chdir(self._old_cwd)
-
-def GetOptionsParser():
- parser = optparse.OptionParser("usage: %prog [options]")
- parser.add_option("--scratch-dir",
- help="Scratch directory to use.")
- parser.add_option("--revision", type="int",
- help="Revision we want to sign.")
- parser.add_option("--channel", type="string",
- default=None,
- help="Channel we want to sign.")
- parser.add_option("--dry-run", action="store_true", dest="dry_run",
- default=False,
- help="Do a dry run and do not execute any commands.")
- parser.add_option("--prepare", action="store_true", dest="prepare",
- default=False,
- help="Prepare the .exe/.zip files to sign.")
- parser.add_option("--deploy", action="store_true", dest="deploy",
- default=False,
- help="Pack the signed .exe/.zip files and deploy.")
- return parser
-
-def die(msg, withOptions=True):
- print msg
- if withOptions:
- GetOptionsParser().print_usage()
- sys.exit(1)
-
-def run(command):
- """We use run() instead of builtin python methods, because not all
- functionality can easily be done by python and we can support --dry-run"""
-
- print "Running: ", command
- if not DRY_RUN:
- process = subprocess.Popen(command,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- (stdout, stderr) = process.communicate()
- if process.returncode != 0:
- print "DEBUG: failed to run command '%s'" % command
- print "DEBUG: stdout = ", stdout
- print "DEBUG: stderr = ", stderr
- print "DEBUG: returncode = ", process.returncode
- raise OSError(process.returncode)
-
-def clean_directory(directory):
- if os.path.exists(directory):
- run(['rm', '-r', directory])
- run(['mkdir', '-p', directory])
-
-def rm_tree(directory):
- if os.path.exists(directory):
- run(['rm', '-r', directory])
-
-def copy_tree(from_dir, to_dir):
- if os.path.exists(to_dir):
- run(['rm', '-r', to_dir])
- run(['cp', '-Rp', from_dir, to_dir])
-
-def copy_file(from_file, to_file):
- if os.path.exists(to_file):
- run(['rm', to_file])
- run(['cp', '-p', from_file, to_file])
-
-def copy_and_zip(from_dir, to_dir):
- rm_tree(to_dir)
- copy_tree(from_dir, to_dir)
-
- dirname = os.path.basename(to_dir)
- with ChangedWorkingDirectory(os.path.dirname(to_dir)):
- run(['zip', '-r9', dirname + '.zip', dirname])
-
-def unzip_and_copy(extracted_zipfiledir, to_dir):
- rm_tree(extracted_zipfiledir)
- run(['unzip', extracted_zipfiledir + '.zip', '-d',
- os.path.dirname(extracted_zipfiledir)])
- rm_tree(to_dir)
- copy_tree(extracted_zipfiledir, to_dir)
-
-def download_from_new_location(channel, config, destination):
- namer = bot_utils.GCSNamer(channel,
- bot_utils.ReleaseType.RAW)
- bucket = namer.editor_zipfilepath(config['revision'], config['system'],
- config['bits'])
- run([GSUTIL, 'cp', bucket, destination])
-
-def download_msi_installer_from_new_location(channel, config, destination):
- namer = bot_utils.GCSNamer(channel, bot_utils.ReleaseType.RAW)
- bucket = namer.editor_installer_filepath(
- config['revision'], config['system'], config['bits'], 'msi')
- run([GSUTIL, 'cp', bucket, destination])
-
-def upload_to_new_location(channel, config, source_zip):
- namer = bot_utils.GCSNamer(channel,
- bot_utils.ReleaseType.SIGNED)
- zipfilename = namer.editor_zipfilename(config['system'], config['bits'])
- bucket = namer.editor_zipfilepath(config['revision'], config['system'],
- config['bits'])
-
- if not DRY_RUN:
- bot_utils.CreateMD5ChecksumFile(source_zip, mangled_filename=zipfilename)
- bot_utils.CreateSha256ChecksumFile(source_zip,
- mangled_filename=zipfilename)
- md5_zip_file = source_zip + '.md5sum'
- sha256_zip_file = source_zip + '.sha256sum'
-
- run([GSUTIL, 'cp', source_zip, bucket])
- run([GSUTIL, 'cp', md5_zip_file, bucket + '.md5sum'])
- run([GSUTIL, 'cp', sha256_zip_file, bucket + '.sha256sum'])
- run([GSUTIL, 'setacl', 'public-read', bucket])
- run([GSUTIL, 'setacl', 'public-read', bucket + '.md5sum'])
- run([GSUTIL, 'setacl', 'public-read', bucket + '.sha256sum'])
-
-def upload_msi_installer_to_new_location(channel, config, signed_msi):
- namer = bot_utils.GCSNamer(channel, bot_utils.ReleaseType.SIGNED)
- bucket = namer.editor_installer_filepath(
- config['revision'], config['system'], config['bits'], 'msi')
- run([GSUTIL, 'cp', '-a', 'public-read', signed_msi, bucket])
-
-def main():
- if sys.platform != 'linux2':
- print "This script was only tested on linux. Please run it on linux!"
- sys.exit(1)
-
- parser = GetOptionsParser()
- (options, args) = parser.parse_args()
-
- if not options.scratch_dir:
- die("No scratch directory given.")
- if not options.revision:
- die("No revision given.")
- if not options.prepare and not options.deploy:
- die("No prepare/deploy parameter given.")
- if options.prepare and options.deploy:
- die("Can't have prepare and deploy parameters at the same time.")
- if len(args) > 0:
- die("Invalid additional arguments: %s." % args)
-
- if not options.channel:
- die("You need to specify a channel with --channel.")
-
- global DRY_RUN
- DRY_RUN = options.dry_run
-
- downloads_dir = os.path.join(options.scratch_dir, 'downloads')
- presign_dir = os.path.join(options.scratch_dir, 'presign')
- postsign_dir = os.path.join(options.scratch_dir, 'postsign')
- uploads_dir = os.path.join(options.scratch_dir, 'uploads')
-
- if options.prepare:
- # Clean all directories
- clean_directory(downloads_dir)
- clean_directory(presign_dir)
- clean_directory(postsign_dir)
- clean_directory(uploads_dir)
- elif options.deploy:
- clean_directory(uploads_dir)
-
- # These are the locations where we can find the *.app folders and *.exe files
- # and the names we use inside the scratch directory.
- locations = {
- 'macos' : {
- 'editor' : os.path.join('dart', 'DartEditor.app'),
- 'chrome' : os.path.join('dart', 'chromium', 'Chromium.app'),
-
- 'editor_scratch' : 'DartEditor%(bits)s.app',
- 'chrome_scratch' : 'Chromium%(bits)s.app',
-
- 'zip' : True,
- },
- 'win32' : {
- 'editor' : os.path.join('dart', 'DartEditor.exe'),
- 'chrome' : os.path.join('dart', 'chromium', 'chrome.exe'),
-
- 'msi_scratch' : 'darteditor-installer-windows-%(bits)s.msi',
- 'editor_scratch' : 'DartEditor%(bits)s.exe',
- 'chrome_scratch' : 'chromium%(bits)s.exe',
-
- 'zip' : False,
- },
- }
-
- # Desitination of zip files we download
- for system in ('macos', 'win32'):
- for bits in ('32', '64'):
- config = {
- 'revision' : options.revision,
- 'system' : system,
- 'bits' : bits,
- }
-
- destination = os.path.join(downloads_dir, FILENAME_PATTERN % config)
- destination_dir = os.path.join(downloads_dir, BASENAME_PATTERN % config)
-
- deploy = os.path.join(uploads_dir, FILENAME_PATTERN % config)
- deploy_dir = os.path.join(uploads_dir, BASENAME_PATTERN % config)
-
- if options.prepare:
- # Download *.zip files from GCS buckets
- download_from_new_location(options.channel, config, destination)
-
- run(['unzip', destination, '-d', destination_dir])
-
- for name in ['editor', 'chrome']:
- from_path = os.path.join(destination_dir, locations[system][name])
- to_path = os.path.join(
- presign_dir, locations[system]['%s_scratch' % name] % config)
-
- if locations[system]['zip']:
- # We copy a .app directory directory and zip it
- copy_and_zip(from_path, to_path)
- else:
- # We copy an .exe file
- copy_file(from_path, to_path)
-
- # Download .*msi installer from GCS to presign directory
- if system == 'win32':
- presign_msi = os.path.join(
- presign_dir, locations[system]['msi_scratch'] % config)
- download_msi_installer_from_new_location(
- options.channel, config, presign_msi)
- elif options.deploy:
- copy_tree(destination_dir, deploy_dir)
-
- for name in ['editor', 'chrome']:
- from_path = os.path.join(
- postsign_dir, locations[system]['%s_scratch' % name] % config)
- to_path = os.path.join(deploy_dir, locations[system][name])
-
- if locations[system]['zip']:
- # We unzip a zip file and copy the resulting signed .app directory
- unzip_and_copy(from_path, to_path)
- else:
- # We copy the signed .exe file
- copy_file(from_path, to_path)
-
- deploy_zip_file = os.path.abspath(deploy)
- with ChangedWorkingDirectory(deploy_dir):
- run(['zip', '-r9', deploy_zip_file, 'dart'])
-
- # Upload *.zip/*.zip.md5sum and set 'public-read' ACL
- upload_to_new_location(options.channel, config, deploy_zip_file)
-
- # Upload *.msi installer and set 'public-read ACL
- if system == 'win32':
- postsign_msi = os.path.join(
- postsign_dir, locations[system]['msi_scratch'] % config)
- upload_msi_installer_to_new_location(
- options.channel, config, postsign_msi)
-
-if __name__ == '__main__':
- main()
« no previous file with comments | « tools/dartium/upload_steps.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698