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

Delta Between Two Patch Sets: build.py

Issue 29367148: Issue 4720 - Edge packager does not support devenv (Closed)
Left Patch Set: Rebase Created Dec. 13, 2016, 4:27 p.m.
Right Patch Set: Rebase Created Sept. 25, 2017, 8:23 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | packagerEdge.py » ('j') | packagerEdge.py » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 # This Source Code Form is subject to the terms of the Mozilla Public 1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this 2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 4
5 import os 5 import os
6 import sys 6 import sys
7 import re 7 import re
8 import subprocess 8 import subprocess
9 import shutil 9 import shutil
10 import buildtools 10 import buildtools
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 } 175 }
176 176
177 177
178 def runBuild(baseDir, scriptName, opts, args, type): 178 def runBuild(baseDir, scriptName, opts, args, type):
179 kwargs = {} 179 kwargs = {}
180 for option, value in opts: 180 for option, value in opts:
181 if option in {'-l', '--locales'} and type == 'gecko': 181 if option in {'-l', '--locales'} and type == 'gecko':
182 kwargs['locales'] = value.split(',') 182 kwargs['locales'] = value.split(',')
183 elif option in {'-b', '--build'}: 183 elif option in {'-b', '--build'}:
184 kwargs['buildNum'] = value 184 kwargs['buildNum'] = value
185 if type != 'gecko' and not kwargs['buildNum'].isdigit(): 185 no_gecko_build = type not in {'gecko', 'gecko-webext'}
186 if no_gecko_build and not kwargs['buildNum'].isdigit():
186 raise TypeError('Build number must be numerical') 187 raise TypeError('Build number must be numerical')
187 elif option in {'-k', '--key'}: 188 elif option in {'-k', '--key'}:
188 kwargs['keyFile'] = value 189 kwargs['keyFile'] = value
189 elif option in {'-m', '--multi-compartment'} and type == 'gecko': 190 elif option in {'-m', '--multi-compartment'} and type == 'gecko':
190 kwargs['multicompartment'] = True 191 kwargs['multicompartment'] = True
191 elif option in {'-r', '--release'}: 192 elif option in {'-r', '--release'}:
192 kwargs['releaseBuild'] = True 193 kwargs['releaseBuild'] = True
193 if len(args) > 0: 194 if len(args) > 0:
194 kwargs['outFile'] = args[0] 195 kwargs['outFile'] = args[0]
195 196
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 return 406 return
406 targetDir = args[0] 407 targetDir = args[0]
407 408
408 source_dir = os.path.join(baseDir, 'lib') 409 source_dir = os.path.join(baseDir, 'lib')
409 sources = [source_dir] 410 sources = [source_dir]
410 411
411 # JSDoc struggles wih huge objects: https://github.com/jsdoc3/jsdoc/issues/9 76 412 # JSDoc struggles wih huge objects: https://github.com/jsdoc3/jsdoc/issues/9 76
412 if type == 'chrome': 413 if type == 'chrome':
413 sources = [os.path.join(source_dir, filename) for filename in os.listdir (source_dir) if filename != 'publicSuffixList.js'] 414 sources = [os.path.join(source_dir, filename) for filename in os.listdir (source_dir) if filename != 'publicSuffixList.js']
414 415
415 config = os.path.join(os.path.dirname(__file__), 'jsdoc.conf') 416 buildtools_path = os.path.dirname(__file__)
416 command = ['jsdoc', '--destination', targetDir, '--configure', config] + sou rces 417 config = os.path.join(buildtools_path, 'jsdoc.conf')
418
419 command = ['npm', 'run-script', 'jsdoc', '--', '--destination', targetDir,
420 '--configure', config] + sources
417 if any(opt in ('-q', '--quiet') for opt, _ in opts): 421 if any(opt in ('-q', '--quiet') for opt, _ in opts):
418 process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subpr ocess.PIPE) 422 process = subprocess.Popen(command, stdout=subprocess.PIPE,
423 stderr=subprocess.PIPE, cwd=buildtools_path)
419 stderr = process.communicate()[1] 424 stderr = process.communicate()[1]
420 retcode = process.poll() 425 retcode = process.poll()
421 if retcode: 426 if retcode:
422 sys.stderr.write(stderr) 427 sys.stderr.write(stderr)
423 raise subprocess.CalledProcessError(command, retcode) 428 raise subprocess.CalledProcessError(command, retcode)
424 else: 429 else:
425 subprocess.check_call(command) 430 subprocess.check_call(command, cwd=buildtools_path)
426 431
427 432
428 def runReleaseAutomation(baseDir, scriptName, opts, args, type): 433 def runReleaseAutomation(baseDir, scriptName, opts, args, type):
429 keyFile = None 434 keyFile = None
430 downloadsRepo = os.path.join(baseDir, '..', 'downloads') 435 downloadsRepo = os.path.join(baseDir, '..', 'downloads')
431 for option, value in opts: 436 for option, value in opts:
432 if option in ('-k', '--key'): 437 if option in ('-k', '--key'):
433 keyFile = value 438 keyFile = value
434 elif option in ('-d', '--downloads'): 439 elif option in ('-d', '--downloads'):
435 downloadsRepo = value 440 downloadsRepo = value
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 514
510 with addCommand(showDescriptions, 'showdesc') as command: 515 with addCommand(showDescriptions, 'showdesc') as command:
511 command.shortDescription = 'Print description strings for all locales' 516 command.shortDescription = 'Print description strings for all locales'
512 command.description = 'Display description strings for all locales as specif ied in the corresponding meta.properties files.' 517 command.description = 'Display description strings for all locales as specif ied in the corresponding meta.properties files.'
513 command.addOption('Only include the given locales', short='l', long='locales ', value='l1,l2,l3') 518 command.addOption('Only include the given locales', short='l', long='locales ', value='l1,l2,l3')
514 command.params = '[options]' 519 command.params = '[options]'
515 command.supportedTypes = ('gecko') 520 command.supportedTypes = ('gecko')
516 521
517 with addCommand(generateDocs, 'docs') as command: 522 with addCommand(generateDocs, 'docs') as command:
518 command.shortDescription = 'Generate documentation (requires node.js)' 523 command.shortDescription = 'Generate documentation (requires node.js)'
519 command.description = 'Generate documentation files and write them into the specified directory. This operation requires JsDoc 3 to be installed.' 524 command.description = ('Generate documentation files and write them into '
525 'the specified directory.')
520 command.addOption('Suppress JsDoc output', short='q', long='quiet') 526 command.addOption('Suppress JsDoc output', short='q', long='quiet')
521 command.params = '[options] <directory>' 527 command.params = '[options] <directory>'
522 command.supportedTypes = ('gecko', 'chrome') 528 command.supportedTypes = ('gecko', 'chrome')
523 529
524 with addCommand(runReleaseAutomation, 'release') as command: 530 with addCommand(runReleaseAutomation, 'release') as command:
525 command.shortDescription = 'Run release automation' 531 command.shortDescription = 'Run release automation'
526 command.description = 'Note: If you are not the project owner then you ' "probably don't want to run this!\n\n" 'Runs release automation: crea tes downloads for the new version, tags ' 'source code repository as well as downloads and buildtools repository.' 532 command.description = 'Note: If you are not the project owner then you ' "probably don't want to run this!\n\n" 'Runs release automation: crea tes downloads for the new version, tags ' 'source code repository as well as downloads and buildtools repository.'
527 command.addOption('File containing private key and certificates required to sign the release.', short='k', long='key', value='file', types=('chrome', 'safar i', 'edge')) 533 command.addOption('File containing private key and certificates required to sign the release.', short='k', long='key', value='file', types=('chrome', 'safar i', 'edge'))
528 command.addOption('Directory containing downloads repository (if omitted ../ downloads is assumed)', short='d', long='downloads', value='dir') 534 command.addOption('Directory containing downloads repository (if omitted ../ downloads is assumed)', short='d', long='downloads', value='dir')
529 command.params = '[options] <version>' 535 command.params = '[options] <version>'
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 if option in ('-h', '--help'): 606 if option in ('-h', '--help'):
601 usage(scriptName, type, command) 607 usage(scriptName, type, command)
602 sys.exit() 608 sys.exit()
603 commands[command](baseDir, scriptName, opts, args, type) 609 commands[command](baseDir, scriptName, opts, args, type)
604 else: 610 else:
605 print 'Command %s is not supported for this application type' % comm and 611 print 'Command %s is not supported for this application type' % comm and
606 usage(scriptName, type) 612 usage(scriptName, type)
607 else: 613 else:
608 print 'Command %s is unrecognized' % command 614 print 'Command %s is unrecognized' % command
609 usage(scriptName, type) 615 usage(scriptName, type)
LEFTRIGHT
« no previous file | packagerEdge.py » ('j') | Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Toggle Comments ('s')

Powered by Google App Engine
This is Rietveld