Remove jjb custom scripting
[releng/builder.git] / scripts / jjb-init-project.py
diff --git a/scripts/jjb-init-project.py b/scripts/jjb-init-project.py
deleted file mode 100644 (file)
index b878f8e..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-#!/usr/bin/python
-
-# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0>
-##############################################################################
-# Copyright (c) 2014, 2015 The Linux Foundation and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#   Thanh Ha (The Linux Foundation) - Initial implementation
-##############################################################################
-
-from collections import OrderedDict
-import os
-import re
-
-import yaml
-
-import jjblib
-
-
-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)
-else:
-    project_conf = args.conf
-
-cfg = dict()  # Needed to skip missing project.cfg files
-if os.path.isfile(project_conf):
-    stream = open(project_conf, "r")
-    cfg = yaml.load(stream)
-
-####################
-# Handle Templates #
-####################
-if cfg.get("JOB_TEMPLATES"):
-    templates = cfg.get("JOB_TEMPLATES")
-else:
-    templates = ("")
-
-##################
-# 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:
-    streams = {"boron": jjblib.STREAM_DEFAULTS["boron"]}
-
-first_stream = next(iter(streams))  # Keep master branch at top.
-sonar_branch = streams[first_stream]["branch"]
-# Create YAML to list branches to create jobs for
-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(","):
-        str_streams += "                - %s\n" % jdk.strip()
-
-    # Disable autorelease validate job unless project is participating
-    # in autorelease, JJB does not allow flipping a boolean so we have to
-    # flip it here via not operator since the JJB configuration for disabling
-    # a Jenkins Job is "disabled: bool".
-    str_streams += "            disable_autorelease: %s\n" % (not options.get(
-        "autorelease", False))
-
-    # Disable the distribution-check job unless project enables it
-    str_streams += "            disable_distribution_check: %s\n" % (
-        not options.get("distribution-check", True))
-
-###############
-# Handle JDKS #
-###############
-if cfg.get('JDKS'):
-    jdks = cfg.get('JDKS')
-else:
-    jdks = "openjdk7"
-use_jdks = ""
-for jdk in jdks.split(","):
-    use_jdks += "                - %s\n" % jdk
-
-##############
-# Handle POM #
-##############
-if cfg.get('POM'):
-    pom = cfg.get('POM')
-else:
-    pom = "pom.xml"
-
-####################
-# Handle MVN_GOALS #
-####################
-if cfg.get('MVN_GOALS'):
-    mvn_goals = cfg.get('MVN_GOALS')
-else:
-    mvn_goals = ("clean install "
-                 "-Dmaven.repo.local=/tmp/r "
-                 "-Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r ")
-
-###################
-# Handle MVN_OPTS #
-###################
-if cfg.get('MVN_OPTS'):
-    mvn_opts = cfg.get('MVN_OPTS')
-else:
-    mvn_opts = "-Xmx1024m -XX:MaxPermSize=256m"
-
-#######################
-# Handle DEPENDENCIES #
-#######################
-if cfg.get('DEPENDENCIES'):
-    dependencies = cfg.get('DEPENDENCIES')
-    if dependencies.find("odlparent") < 0:  # Add odlparent if not listed
-        dependencies = "odlparent," + dependencies
-    disabled = "false"
-else:
-    dependencies = None
-    if project.project != "odlparent":  # Odlparent does not depend on itself
-        dependencies = "odlparent"  # All other projects depend on odlparent
-    disabled = "false"
-
-if dependencies:
-    email_prefix = (email_prefix + " " +
-                " ".join(['[%s]' % d for d in dependencies.split(",")]))  # noqa
-    dependent_jobs = ",".join(
-        ['%s-merge-{stream}' % d for d in dependencies.split(",")])
-
-############################
-# Handle ARCHIVE_ARTIFACTS #
-############################
-
-archive_artifacts = cfg.get('ARCHIVE_ARTIFACTS', '')
-
-##############################
-# Create configuration start #
-##############################
-
-# Create project directory if it doesn't exist
-if not os.path.exists(project_dir):
-    os.makedirs(project_dir)
-
-print("project: %s\n"
-      "streams: %s\n"
-      "goals: %s\n"
-      "options: %s\n"
-      "dependencies: %s\n"
-      "artifacts: %s" %
-      (project,
-       str_streams,
-       mvn_goals,
-       mvn_opts,
-       dependencies,
-       archive_artifacts,))
-
-# Create initial project YAML file
-use_templates = templates.split(",")
-use_templates.insert(0, "project")
-job_templates_yaml = ""
-for t in use_templates:
-    if t == "project":  # This is not a job type but is used for templating
-        pass
-    elif t == "sonar":
-        job_templates_yaml = job_templates_yaml + \
-            "        - '%s-%s'\n" % (project, t)
-    else:
-        job_templates_yaml = job_templates_yaml + \
-            "        - '%s-%s-{stream}'\n" % (project, t)
-
-with open(project_file, "w") as outfile:
-    for t in use_templates:
-        template_file = "jjb-templates/%s.yaml" % t
-        with open(template_file, "r") as infile:
-            for line in infile:
-                if not re.match("\s*#", line):
-                    line = re.sub("JOB_TEMPLATES", job_templates_yaml, 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", 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)
-                    line = re.sub("DEPENDENCIES", dependent_jobs, line)
-                    line = re.sub("EMAIL_PREFIX", email_prefix, line)
-                    line = re.sub("SONAR_BRANCH", sonar_branch, line)
-                    line = re.sub("ARCHIVE_ARTIFACTS", archive_artifacts, line)
-                    # The previous command may have created superfluous lines.
-                    # If a line has no non-whitespace, it has to be '\n' only.
-                    line = re.sub(r'^\s+\n', "", line)
-                outfile.write(line)
-        outfile.write("\n")