def createCustomerRelease(releaseType, releaseSpecDir, destDir, fromDir, releaseName, allArchitectures=True, allArchiveTypes=False, allowSymbolicLinks=False, parentTmpDir=None): """Create a customer release tarball in destdir from the directories engReleaseDir and releaseSpecDir releaseType is one of biaryReleaseTypes or sourceReleaseTypes fromDir is engineering build for the binary release, source dir for a source release releaseSpecDir is directory containing manifests Returns a path to the tarball Throws an exception on error""" if not os.path.exists(destDir): utils.createDir(destDir) if releaseType in binaryReleaseTypes: isSourceRelease = False elif releaseType in sourceReleaseTypes: isSourceRelease = True else: raise Exception("Unknown release type '%s'" % releaseType) if not isSourceRelease: allArchitectures=False manifestFile = os.path.join(releaseSpecDir, releaseType + "_release", "manifests", releaseType + "_release.manifest") log.info("Creating customer release of type %s", releaseType) log.info("specDir: %s", releaseSpecDir) log.info("fromDir: %s", fromDir) tempdir = utils.createTemporaryDirectory("assemble_release", parentDir=parentTmpDir) try: releaseImageDir = os.path.join(tempdir, releaseName) installFromManifest(manifestFile, fromDir, releaseImageDir, level=0, overwrite=False, destdirExists=False, allArchitectures=allArchitectures, allowSymbolicLinks=allowSymbolicLinks) if isSourceRelease: # run autogen equivalent on source trees build.prepareSourceTree(releaseImageDir, customerRelease=True) # Need to create both zip and tgz source releases on the master build system if allArchiveTypes == True: # sanity checks if not isSourceRelease: raise Exception("Attempt to create both zip and tar file for a binary release. Probably an error") if getArch() == "win32": raise Exception("Attempt to create .tgz source release on a windows system. Would not include autogen.sh") zipFile = utils.createArchive(releaseImageDir, destDir, type="zip") tarFile = utils.createArchive(releaseImageDir, destDir, type="tar") return (tarFile, zipFile) else: release = utils.createArchive(releaseImageDir, destDir) return release finally: utils.remove(tempdir)
print >> f, "Buildhost: " + platform.node() print >> f, "Svnpath: " + svnpath print >> f, "Revision: " + str(revisionnum) print >> f, "Rootdir: " + rootdir print >> f, "Srcdir: " + srcdir print >> f, "Stamp: " + stamp print >> f, "Assertions:" + str(assertions) print >> f, "Update: " + str(update) print >> f, "" f.close() except Exception, e: raise Exception("Error writing to build description file '%s'", buildfilename) log.info('Configuring and building %s at revision %s into %s', svnpath, revisionnum, installdir) build.prepareSourceTree(srcdir) build.build(srcdir, builddir, installdir, assertions, nprocs=nprocs) log.info("Build is finished") utils.remove(build_in_progress_filename) ######### End of buildit ########### def getReleaseName(stamp, releaseType, debug=False): arch = getArch() if debug: prefix = "nupic-debug" else: prefix = "nupic"