X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=scripts%2Fjjb-autoupdate-project.py;h=56769bdb7ad5149404f4f50923f4d10af98d8248;hb=257c6458c6bc5c354d90bc9d0551cbf2fa77b020;hp=6950c70b0b289d1baa9ba6981363a8fc152337d6;hpb=0040afd803c53bcfd2cb4e0aa201f48fea3fd3b4;p=releng%2Fbuilder.git diff --git a/scripts/jjb-autoupdate-project.py b/scripts/jjb-autoupdate-project.py index 6950c70b0..56769bdb7 100644 --- a/scripts/jjb-autoupdate-project.py +++ b/scripts/jjb-autoupdate-project.py @@ -2,7 +2,7 @@ # @License EPL-1.0 ############################################################################## -# Copyright (c) 2014 The Linux Foundation and others. +# 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 @@ -15,57 +15,48 @@ import os -import yaml +from jjblib import Project -def get_autoupdate_projects(jjb_dir, projects): +def _is_project(jjb_dir, project): + """Returns true if project is a project that should be auto-generated""" + p = Project(project) + if p.meta_project: + template = os.path.join(jjb_dir, project, "%s.yaml" % p.project) + else: + template = os.path.join(jjb_dir, p.project, "%s.yaml" % p.project) + + if os.path.isfile(template): # Project found + with open(template, 'r') as f: + first_line = f.readline() + if first_line.startswith("# REMOVE THIS LINE IF"): + return True + return False + + +def get_autoupdate_projects(jjb_dir): """Get list of projects that should be auto-updated.""" project_list = [] - for project in projects: - template = os.path.join(jjb_dir, project, "%s.yaml" % project) - if os.path.isfile(template): - with open(template, 'r') as f: - first_line = f.readline() - if first_line.startswith("# REMOVE THIS LINE IF"): - project_list.append(project) + + for root, dirs, files in os.walk(jjb_dir): + project = root.replace("%s/" % jjb_dir, '') + + if _is_project(jjb_dir, project): + project_list.append(project) return project_list def update_templates(projects): for project in projects: - - # If project has customized variables - cfg_file = "jjb/%s/%s.cfg" % (project, project) - parameters = ["python scripts/jjb-init-project.py"] - parameters.append("-z") # Disable CFG auto-generation - if os.path.isfile(cfg_file): - stream = open(cfg_file, "r") - cfg = yaml.load(stream) - for k, v in cfg.items(): - if k == "JOB_TEMPLATES" and v is not None: - parameters.append("-t '%s'" % v) - elif k == "BRANCHES" and v is not None: - parameters.append("-b '%s'" % v) - elif k == "JDKS" and v is not None: - parameters.append("-j '%s'" % v) - elif k == "POM" and v is not None: - parameters.append("-p '%s'" % v) - elif k == "MVN_GOALS" and v is not None: - parameters.append("-g '%s'" % v) - elif k == "MVN_OPTS" and v is not None: - parameters.append("-o '%s'" % v) - elif k == "DEPENDENCIES" and v is not None: - parameters.append("-d '%s'" % v) - elif k == "ARCHIVE_ARTIFACTS" and v is not None: - parameters.append("-a '%s'" % v) - - parameters.append(project) - cmd = " ".join(parameters) - os.system(cmd) - + print("Updating... %s" % project) + p = Project(project) + if p.meta_project: # Meta project + cfg_file = "jjb/%s/%s.cfg" % (project, p.project) else: - os.system("python scripts/jjb-init-project.py -z %s" % project) + cfg_file = "jjb/%s/%s.cfg" % (p.project, p.project) + os.system("python scripts/jjb-init-project.py %s -c %s" % + (project, cfg_file)) ############## # Code Start # @@ -74,5 +65,5 @@ def update_templates(projects): jjb_dir = "jjb" all_projects = [d for d in os.listdir(jjb_dir) if os.path.isdir(os.path.join(jjb_dir, d))] -auto_update_projects = get_autoupdate_projects(jjb_dir, all_projects) +auto_update_projects = get_autoupdate_projects(jjb_dir) update_templates(auto_update_projects)