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

Unified Diff: sitescripts/extensions/bin/createNightlies.py

Issue 8623067: Nightly builds script changes required to work with the newest buildtools (Closed)
Patch Set: Created Oct. 19, 2012, 10:52 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « .hgsubstate ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sitescripts/extensions/bin/createNightlies.py
===================================================================
--- a/sitescripts/extensions/bin/createNightlies.py
+++ b/sitescripts/extensions/bin/createNightlies.py
@@ -15,17 +15,16 @@ Nightly builds generation script
"""
import sys, os, os.path, subprocess, ConfigParser, traceback, json, hashlib
import tempfile, re, shutil, urlparse, pipes
from datetime import datetime
from xml.dom.minidom import parse as parseXml
from sitescripts.utils import get_config, setupStderr, get_template
from sitescripts.extensions.utils import compareVersions, Configuration
-import buildtools.packagerGecko as packager
MAX_BUILDS = 50
class NightlyBuild(object):
"""
Performs the build process for an extension,
generating changelogs and documentation.
@@ -103,16 +102,17 @@ class NightlyBuild(object):
shutil.copyfile(changelogPath, linkPath)
def readMetadata(self):
"""
read the metadata file from a cloned repository
and parse id, version, basename and the compat section
out of the file
"""
+ import buildtools.packagerGecko as packager
metadata = packager.readMetadata(self.tempdir)
self.extensionID = metadata.get("general", "id")
self.version = '%s.%s' % (metadata.get("general", "version"), self.revision)
self.basename = metadata.get("general", "basename")
self.compat = []
for key, value in packager.KNOWN_APPS.iteritems():
if metadata.has_option('compat', key):
minVersion, maxVersion = metadata.get('compat', key).split('/')
@@ -139,19 +139,18 @@ class NightlyBuild(object):
def readChromeMetadata(self):
"""
Read Chrome-specific metadata from manifest.json file. It will also
calculate extension ID from the private key.
"""
# Calculate extension ID from public key
# (see http://supercollider.dk/2010/01/calculating-chrome-extension-id-from-your-private-key-233)
- sys.path.append(self.tempdir)
- build = __import__('build')
- publicKey = build.getPublicKey(self.config.keyFile)
+ import buildtools.packagerChrome as packager
+ publicKey = packager.getPublicKey(self.config.keyFile)
hash = hashlib.sha256()
hash.update(publicKey)
self.extensionID = hash.hexdigest()[0:32]
self.extensionID = ''.join(map(lambda c: chr(97 + int(c, 16)), self.extensionID))
# Now read manifest.json
manifestFile = open(os.path.join(self.tempdir, 'manifest.json'), 'rb')
manifest = json.load(manifestFile)
@@ -212,21 +211,20 @@ class NightlyBuild(object):
status = process.wait()
apkFile.close()
if status:
# clear broken output if any
# exception will be raised later
if os.path.exists(outputPath):
os.remove(outputPath)
elif self.config.type == 'chrome':
- buildCommand = ['python', os.path.join(self.tempdir, 'build.py'), '-k', self.config.keyFile, '-b', self.revision, outputPath]
- if self.config.experimental:
- buildCommand[-1:0] = ['--experimental']
- subprocess.Popen(buildCommand, stdout=subprocess.PIPE).communicate()
+ import buildtools.packagerChrome as packager
+ packager.createBuild(self.tempdir, outFile=outputPath, buildNum=self.revision, keyFile=self.config.keyFile, experimentalAPI=self.config.experimental)
else:
+ import buildtools.packagerGecko as packager
packager.createBuild(self.tempdir, outFile=outputPath, buildNum=self.revision, keyFile=self.config.keyFile)
if not os.path.exists(outputPath):
raise Exception("Build failed, output file hasn't been created")
linkPath = os.path.join(baseDir, '00latest%s' % self.config.packageSuffix)
if hasattr(os, 'symlink'):
if os.path.exists(linkPath):
« no previous file with comments | « .hgsubstate ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld