Merge "Add provide-maven-settings prebuilder to all templates"
[releng/builder.git] / scripts / jjb-init-project.py
index 6e6b96698695321fdfc07061955cd17aa6c18a34..dfb20299e406d23026e87370769e339bab665462 100644 (file)
@@ -28,14 +28,18 @@ args = jjblib.parse_jjb_args()
 project = jjblib.Project(args.project)
 if project.meta_project is not None:
     project_dir = os.path.join("jjb", project.meta_project, project.project)
+    jenkins_settings = "%s-%s-settings" % (project.meta_project,
+                                           project.project)
 else:
     project_dir = os.path.join("jjb", project.project)
+    jenkins_settings = "%s-settings" % project.project
 
 project_file = os.path.join(project_dir, "%s.yaml" % project)
 dependent_jobs = ""
 disabled = "true"   # Always disabled unless project has dependencies
 email_prefix = "[%s]" % project
 
+
 if not args.conf:
     jjblib.create_template_config(project_dir, args)
     project_conf = os.path.join(project_dir, "%s.cfg" % args.project)
@@ -50,35 +54,34 @@ if os.path.isfile(project_conf):
 ####################
 # Handle Templates #
 ####################
-if cfg.get('JOB_TEMPLATES'):
-    templates = cfg.get('JOB_TEMPLATES')
+if cfg.get("JOB_TEMPLATES"):
+    templates = cfg.get("JOB_TEMPLATES")
 else:
     templates = "verify,merge,daily,distribution,integration,sonar"
 templates += ",clm"  # ensure we always create a clm job for all projects
 
-###################
-# Handle Branches #
-###################
-branches = OrderedDict()
-if cfg.get('BRANCHES'):
-    for branch in cfg.get('BRANCHES'):
-        for b in branch:
-            branches.update({b: branch[b]})
+##################
+# Handle Streams #
+##################
+streams = OrderedDict()
+if cfg.get("STREAMS"):  # this is a list of single-key dicts
+    for stream_dict in cfg.get("STREAMS"):
+        streams.update(stream_dict)
 else:
-    branches.update({"master": {"jdks": "openjdk7"}})
+    streams = {"beryllium": jjblib.STREAM_DEFAULTS["beryllium"]}
 
-sonar_branch = list(branches.items())[0][0]
+first_stream = streams.iterkeys().next()  # Keep master branch at top.
+sonar_branch = streams[first_stream]["branch"]
 # Create YAML to list branches to create jobs for
-streams = "stream:\n"
-for branch, options in branches.items():
-    streams = streams + ("        - %s:\n"
-                         "            branch: '%s'\n" %
-                         (branch.replace('/', '-'),
-                          branch))
-    streams = streams + "            jdk: %s\n" % options["jdks"].split(",")[0].strip()  # noqa
-    streams = streams + "            jdks:\n"
+str_streams = "stream:\n"
+for stream, options in streams.items():
+    str_streams += ("        - %s:\n"
+                    "            branch: '%s'\n" %
+                    (stream, options["branch"]))
+    str_streams += "            jdk: %s\n" % options["jdks"].split(',')[0].strip()  # noqa
+    str_streams += "            jdks:\n"
     for jdk in options["jdks"].split(","):
-        streams = streams + "                - %s\n" % jdk.strip()
+        str_streams += "                - %s\n" % jdk.strip()
 
 ###############
 # Handle JDKS #
@@ -155,13 +158,13 @@ if not os.path.exists(project_dir):
     os.makedirs(project_dir)
 
 print("project: %s\n"
-      "branches: %s\n"
+      "streams: %s\n"
       "goals: %s\n"
       "options: %s\n"
       "dependencies: %s\n"
       "artifacts: %s" %
       (project,
-       branches,
+       str_streams,
        mvn_goals,
        mvn_opts,
        dependencies,
@@ -188,9 +191,11 @@ with open(project_file, "w") as outfile:
             for line in infile:
                 if not re.match("\s*#", line):
                     line = re.sub("JOB_TEMPLATES", job_templates_yaml, line)
-                    line = re.sub("PROJECT", project.project, line)
+                    line = re.sub("PROJECT_SHORTNAME", project.project, line)
+                    line = re.sub("PROJECT_PATH", project.path, line)
+                    line = re.sub("JENKINS_SETTINGS", jenkins_settings, line)
                     line = re.sub("DISABLED", disabled, line)
-                    line = re.sub("STREAMS", streams, line)
+                    line = re.sub("STREAMS", str_streams, line)
                     line = re.sub("POM", pom, line)
                     line = re.sub("MAVEN_GOALS", mvn_goals, line)
                     line = re.sub("MAVEN_OPTS", mvn_opts, line)