import os import json from pprint import pprint from bamboo.tasks import Tasks from bamboo.helpers import get_stable, cerr project_key = os.environ['BUILD_KEY'].split('-')[0] print "Project key:", project_key jira = Tasks(configfile='/data/bamboo.cfg') with open('collected-tasks.txt', 'r') as f: all_stables = dict() version_int_tasks = dict() for line in f.readlines(): task_key = line.strip() versions = jira.get_versions(task_key) stables = {v: get_stable(v) for v in versions} if len(set(stables.values()))!=len(versions): cerr('Incorrect versions and stables for %s' % task_key) cerr('Versions: %s' % ', '.join('%s: %s' % (k, v) for k, v in stables.items())) sys.exit(-1) for v, s in stables.items(): all_stables.setdefault(s, {}) all_stables[s].setdefault(v, []) all_stables[s][v].append(task_key) version_int_tasks[v] = None print "Merging plan:" pprint(all_stables) plan = open('merge-plan.json', 'w') json.dump(all_stables, plan) plan.close() for v in version_int_tasks.keys():
def compute_stable_path(self, release): stable = get_stable(release) return os.path.join(self.project_root, self.stable_dir, stable)