# pip install requests
# Deploy depends on .deployUrl and .deployCredentials files in home folder
-import sys
+import sys, os
try:
from git import Repo
except:
print("BuildDemos depends on gitpython. Install it with `pip install gitpython`")
sys.exit(1)
-from BuildHelpers import updateRepositories, mavenValidate, copyWarFiles, getLogFile, removeDir, getArgs
+from BuildHelpers import updateRepositories, mavenValidate, copyWarFiles, getLogFile, removeDir, getArgs, mavenInstall
from DeployHelpers import deployWar
+from os.path import join, isfile
+from fnmatch import fnmatch
# Validated demos. name -> git url
demos = {
Repo.clone_from(url, folder)
if __name__ == "__main__":
- if getArgs().teamcity:
- print("Add dependency jars from TeamCity here")
+ if hasattr(getArgs(), "artifactPath") and getArgs().artifactPath is not None:
+ basePath = getArgs().artifactPath
+ poms = []
+ for root, dirs, files in os.walk(basePath):
+ for name in files:
+ if fnmatch(name, "*.pom"):
+ poms.append(join(root, name))
+ for pom in poms:
+ jarFile = pom.replace(".pom", ".jar")
+ if isfile(jarFile):
+ mavenInstall(pom, jarFile)
+ else:
+ mavenInstall(pom)
demosFailed = False
parser = argparse.ArgumentParser(description="Automated staging validation")
parser.add_argument("version", type=str, help="Vaadin version to use")
parser.add_argument("--maven", help="Additional maven command line parameters", default=None)
-parser.add_argument("--teamcity", help="Use vaadin jars provided by teamcity", action="store_const", const=True, default=False)
+parser.add_argument("--artifactPath", help="Path to local folder with Vaadin artifacts", default=None)
# Parse command line arguments <version>
def parseArgs():
# Dangerous relative paths.
return
rmtree(join(getcwd(), subdir))
+
+def mavenInstall(pomFile, jarFile = None, mvnCmd = mavenCmd, logFile = sys.stdout):
+ cmd = [mvnCmd, "install:install-file"]
+ cmd.append("-Dfile=%s" % (jarFile if jarFile is not None else pomFile))
+ cmd.append("-DpomFile=%s" % (pomFile))
+ print("executing: %s" % (" ".join(cmd)))
+ subprocess.check_call(cmd, stdout=logFile)