Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: build.py

Issue 11586054: Add Chrome release automation (Closed)
Patch Set: Created Sept. 2, 2013, 9:06 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | releaseAutomation.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # coding: utf-8 1 # coding: utf-8
2 2
3 # This file is part of the Adblock Plus build tools, 3 # This file is part of the Adblock Plus build tools,
4 # Copyright (C) 2006-2013 Eyeo GmbH 4 # Copyright (C) 2006-2013 Eyeo GmbH
5 # 5 #
6 # Adblock Plus is free software: you can redistribute it and/or modify 6 # Adblock Plus is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License version 3 as 7 # it under the terms of the GNU General Public License version 3 as
8 # published by the Free Software Foundation. 8 # published by the Free Software Foundation.
9 # 9 #
10 # Adblock Plus is distributed in the hope that it will be useful, 10 # Adblock Plus is distributed in the hope that it will be useful,
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 384
385 def runReleaseAutomation(baseDir, scriptName, opts, args, type): 385 def runReleaseAutomation(baseDir, scriptName, opts, args, type):
386 keyFile = None 386 keyFile = None
387 downloadsRepo = os.path.join(baseDir, '..', 'downloads') 387 downloadsRepo = os.path.join(baseDir, '..', 'downloads')
388 for option, value in opts: 388 for option, value in opts:
389 if option in ('-k', '--key'): 389 if option in ('-k', '--key'):
390 keyFile = value 390 keyFile = value
391 elif option in ('-d', '--downloads'): 391 elif option in ('-d', '--downloads'):
392 downloadsRepo = value 392 downloadsRepo = value
393 393
394 if type == 'gecko': 394 if len(args) == 0:
395 if len(args) == 0: 395 print 'No version number specified for the release'
396 print 'No version number specified for the release' 396 usage(scriptName, type, 'release')
397 usage(scriptName, type, 'release') 397 return
398 return 398 version = args[0]
399 version = args[0] 399 if re.search(r'[^\d\.]', version):
400 if re.search(r'[^\w\.]', version): 400 print 'Wrong version number format'
401 print 'Wrong version number format' 401 usage(scriptName, type, 'release')
402 return
403
404 if keyFile == None:
405 if type == "gecko":
406 print >>sys.stderr, "Warning: no key file specified, creating an unsigned release build\n"
407 else:
408 print >>sys.stderr, "Error: key file is required for the release"
402 usage(scriptName, type, 'release') 409 usage(scriptName, type, 'release')
403 return 410 return
404 411
405 if keyFile == None: 412 import buildtools.releaseAutomation as releaseAutomation
406 print 'Warning: no key file specified, creating an unsigned release build\ n' 413 releaseAutomation.run(baseDir, type, version, keyFile, downloadsRepo)
407
408 import buildtools.releaseAutomationGecko as releaseAutomation
409 releaseAutomation.run(baseDir, type, version, keyFile, downloadsRepo)
410 414
411 def updatePSL(baseDir, scriptName, opts, args, type): 415 def updatePSL(baseDir, scriptName, opts, args, type):
412 import buildtools.publicSuffixListUpdater as publicSuffixListUpdater 416 import buildtools.publicSuffixListUpdater as publicSuffixListUpdater
413 publicSuffixListUpdater.updatePSL(baseDir) 417 publicSuffixListUpdater.updatePSL(baseDir)
414 418
415 with addCommand(lambda baseDir, scriptName, opts, args, type: usage(scriptName, type), ('help', '-h', '--help')) as command: 419 with addCommand(lambda baseDir, scriptName, opts, args, type: usage(scriptName, type), ('help', '-h', '--help')) as command:
416 command.shortDescription = 'Show this message' 420 command.shortDescription = 'Show this message'
417 421
418 with addCommand(runBuild, 'build') as command: 422 with addCommand(runBuild, 'build') as command:
419 command.shortDescription = 'Create a build' 423 command.shortDescription = 'Create a build'
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 command.addOption('Suppress JsDoc Toolkit output', short='q', long='quiet') 481 command.addOption('Suppress JsDoc Toolkit output', short='q', long='quiet')
478 command.params = '[options] <directory>' 482 command.params = '[options] <directory>'
479 command.supportedTypes = ('gecko') 483 command.supportedTypes = ('gecko')
480 484
481 with addCommand(runReleaseAutomation, 'release') as command: 485 with addCommand(runReleaseAutomation, 'release') as command:
482 command.shortDescription = 'Run release automation' 486 command.shortDescription = 'Run release automation'
483 command.description = 'Note: If you are not the project owner then you '\ 487 command.description = 'Note: If you are not the project owner then you '\
484 'probably don\'t want to run this!\n\n'\ 488 'probably don\'t want to run this!\n\n'\
485 'Runs release automation: creates downloads for the new version, tags '\ 489 'Runs release automation: creates downloads for the new version, tags '\
486 'source code repository as well as downloads and buildtools repository.' 490 'source code repository as well as downloads and buildtools repository.'
487 command.addOption('File containing private key and certificates required to si gn the release', short='k', long='key', value='file', types=('gecko')) 491 command.addOption('File containing private key and certificates required to si gn the release', short='k', long='key', value='file', types=('gecko', 'chrome'))
488 command.addOption('Directory containing downloads repository (if omitted ../do wnloads is assumed)', short='d', long='downloads', value='dir') 492 command.addOption('Directory containing downloads repository (if omitted ../do wnloads is assumed)', short='d', long='downloads', value='dir')
489 command.params = '[options] <version>' 493 command.params = '[options] <version>'
490 command.supportedTypes = ('gecko') 494 command.supportedTypes = ('gecko', 'chrome')
491 495
492 with addCommand(updatePSL, 'updatepsl') as command: 496 with addCommand(updatePSL, 'updatepsl') as command:
493 command.shortDescription = 'Updates Public Suffix List' 497 command.shortDescription = 'Updates Public Suffix List'
494 command.description = 'Downloads Public Suffix List (see http://publicsuffix.o rg/) and generates lib/publicSuffixList.js from it.' 498 command.description = 'Downloads Public Suffix List (see http://publicsuffix.o rg/) and generates lib/publicSuffixList.js from it.'
495 command.supportedTypes = ('chrome', 'opera') 499 command.supportedTypes = ('chrome', 'opera')
496 500
497 def getType(baseDir, scriptName, args): 501 def getType(baseDir, scriptName, args):
498 # Look for an explicit type parameter (has to be the first parameter) 502 # Look for an explicit type parameter (has to be the first parameter)
499 if len(args) >= 2 and args[0] == '-t': 503 if len(args) >= 2 and args[0] == '-t':
500 type = args[1] 504 type = args[1]
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 if option in ('-h', '--help'): 562 if option in ('-h', '--help'):
559 usage(scriptName, type, command) 563 usage(scriptName, type, command)
560 sys.exit() 564 sys.exit()
561 commands[command](baseDir, scriptName, opts, args, type) 565 commands[command](baseDir, scriptName, opts, args, type)
562 else: 566 else:
563 print 'Command %s is not supported for this application type' % command 567 print 'Command %s is not supported for this application type' % command
564 usage(scriptName, type) 568 usage(scriptName, type)
565 else: 569 else:
566 print 'Command %s is unrecognized' % command 570 print 'Command %s is unrecognized' % command
567 usage(scriptName, type) 571 usage(scriptName, type)
OLDNEW
« no previous file with comments | « no previous file | releaseAutomation.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld