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

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

Issue 10850030: Remove support for KMeleon devbuilds and add (somewhat hacky) support for IE devbuilds (Closed)
Patch Set: Created June 12, 2013, 1:11 p.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 | « .sitescripts.example ('k') | sitescripts/extensions/template/nightlies.html » ('j') | 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
@@ -20,17 +20,17 @@
Nightly builds generation script
================================
This script generates nightly builds of extensions, together
with changelogs and documentation.
"""
-import sys, os, os.path, subprocess, ConfigParser, traceback, json, hashlib
+import sys, os, os.path, codecs, 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
MAX_BUILDS = 50
@@ -190,16 +190,59 @@ class NightlyBuild(object):
templateName = 'androidUpdateManifest'
else:
manifestPath = os.path.join(baseDir, "update.rdf")
templateName = 'geckoUpdateManifest'
template = get_template(get_config().get('extensions', templateName))
template.stream({'extensions': [self]}).dump(manifestPath)
+ def writeLibabpUpdateManifest(self, updates):
+ """
+ Writes update.json file for libadblockplus
+ """
+ baseDir = os.path.join(self.config.nightliesDirectory, self.basename)
+ if not os.path.exists(baseDir):
+ os.makedirs(baseDir)
+ manifestPath = os.path.join(baseDir, "update.json")
+
+ handle = codecs.open(manifestPath, "wb", encoding="UTF-8")
+ json.dump(updates, handle, ensure_ascii=False, indent=2, separators=(",", ": "))
+ handle.close()
+
+ def writeIEUpdateManifest(self, versions):
+ """
+ Writes update.json file for the latest IE build
+ """
+ if len(versions) == 0:
+ return
+
+ version = versions[0]
+ packageName = self.basename + '-' + versions[0] + self.config.packageSuffix
+ updateURL = urlparse.urljoin(self.config.nightliesURL, self.basename + '/' + packageName + '?update')
+ self.writeLibabpUpdateManifest({
+ "%s/%s" % (self.basename, "msie64"): {
+ "url": updateURL,
+ "version": version,
+ },
+ "%s/%s" % (self.basename, "win64"): {
+ "url": updateURL,
+ "version": version,
+ },
+ "%s/%s" % (self.basename, "msie32"): {
+ "url": updateURL.replace("-x64", "-x86"),
+ "version": version,
+ },
+ "%s/%s" % (self.basename, "win32"): {
+ "url": updateURL.replace("-x64", "-x86"),
+ "version": version,
+ },
+ })
+
+
def build(self):
"""
run the build command in the tempdir
"""
baseDir = os.path.join(self.config.nightliesDirectory, self.basename)
if not os.path.exists(baseDir):
os.makedirs(baseDir)
outputFile = "%s-%s%s" % (self.basename, self.version, self.config.packageSuffix)
@@ -312,18 +355,18 @@ class NightlyBuild(object):
finally:
shutil.rmtree(docsdir, ignore_errors=True)
def run(self):
"""
Run the nightly build process for one extension
"""
try:
- if self.config.type == 'kmeleon':
- # We cannot build K-Meleon builds, simply list the builds already in
+ if self.config.type == 'ie':
+ # We cannot build IE builds, simply list the builds already in
# the directory. Basename has to be deduced from the repository name.
self.basename = os.path.basename(self.config.repository)
else:
# copy the repository into a temporary directory
self.copyRepository()
# get meta data from the repository
if self.config.type == 'android':
@@ -343,16 +386,19 @@ class NightlyBuild(object):
self.writeUpdateManifest()
# update documentation
self.updateDocs()
# retire old builds
versions = self.retireBuilds()
+ if self.config.type == 'ie':
+ self.writeIEUpdateManifest(versions)
+
# update index page
self.updateIndex(versions)
# update nightlies config
self.config.latestRevision = self.revision
finally:
# clean up
if self.tempdir:
« no previous file with comments | « .sitescripts.example ('k') | sitescripts/extensions/template/nightlies.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld