Merge "Bug 4628: Add detection to deploy test script"
[releng/builder.git] / scripts / jjblib.py
index 5227a158252a3c010d6c4b23e3ade2e26c4af196..50c5643702b4dec092f8b268d73cd58154d30964 100644 (file)
@@ -1,4 +1,5 @@
 import argparse
+import collections
 import os
 
 import yaml
@@ -17,8 +18,8 @@ def parse_jjb_args():
                               "job is built successfully.\n\n"
                               "Example: aaa,controller,yangtools"))
     parser.add_argument("-t", "--templates", help="Job templates to use")
-    parser.add_argument("-b", "--branches", help="Git Branches to build")
-    parser.add_argument("-j", "--jdks", help="JDKs to build against (for verify jobs)")  # noqa
+    parser.add_argument("-s", "--streams",
+                        help="Release streams to fill with default options")
     parser.add_argument("-p", "--pom", help="Path to pom.xml to use in Maven "
                                             "build (Default: pom.xml")
     parser.add_argument("-g", "--mvn-goals", help="Maven Goals")
@@ -30,23 +31,38 @@ def parse_jjb_args():
     return parser.parse_args()
 
 
+STREAM_DEFAULTS = collections.OrderedDict([
+    ("boron", {"branch": "master", "jdks": "openjdk8"}),
+    ("beryllium", {"branch": "stable/beryllium", "jdks": "openjdk8"}),
+    ("stable-lithium", {"branch": "stable/lithium", "jdks": "openjdk7"}),
+    ("stable-helium", {"branch": "stable/helium", "jdks": "openjdk7"}),
+])
+
+
 def create_template_config(project_dir, args):
     cfg_data = dict()
 
     if args.templates:
         cfg_data["JOB_TEMPLATES"] = args.templates
-    if args.branches:
-        cfg_data["BRANCHES"] = args.branches
-    if args.jdks:
-        cfg_data["JDKS"] = args.jdks
+
+    if args.streams:
+        stream_list = list()
+        for stream in args.streams.split(","):
+            stream_list.append({stream: STREAM_DEFAULTS[stream]})
+        cfg_data["STREAMS"] = stream_list
+
     if args.pom:
         cfg_data["POM"] = args.pom
+
     if args.mvn_goals:
         cfg_data["MAVEN_GOALS"] = args.mvn_goals
+
     if args.mvn_opts:
         cfg_data["MAVEN_OPTS"] = args.mvn_opts
+
     if args.dependencies:
         cfg_data["DEPENDENCIES"] = args.dependencies
+
     if args.archive_artifacts:
         cfg_data["ARCHIVE"] = args.archive_artifacts
 
@@ -60,3 +76,26 @@ def create_template_config(project_dir, args):
 
         with open(cfg_file, "w") as outstream:
             outstream.write(yaml.dump(cfg_data, default_flow_style=False))
+
+
+class Project:
+    """Represents a Gerrit Project
+
+    Attributes:
+        path(str): The full Gerrit path to a project
+        meta_project(str): The top-level project name in Gerrit
+        project(str): The subproject name or project shortname
+    """
+
+    def __init__(self, project):
+        self.path = project
+        self.meta_project = None
+        self.project = project
+
+        if project.find('/') >= 0:
+            s = project.rsplit('/', 1)
+            self.meta_project = s[0]
+            self.project = s[1]
+
+    def __str__(self):
+        return self.project