def test_ensure_dir(self): tmpdir = tempfile.mkdtemp() try: path = os.path.join(tmpdir, 'onemorelevel') utils.ensure_dir(path) self.assertTrue(os.path.isdir(path)) # Test for idempotency utils.ensure_dir(path) finally: shutil.rmtree(tmpdir)
def generate_summary(basedir): data = {'all_builds': {}} try: for job_name in os.listdir(os.path.join(basedir, 'jobs')): data['all_builds'][job_name] = {} try: for build in os.listdir(os.path.join(basedir, 'jobs', job_name, 'build_records')): data['all_builds'][job_name][build] = json.load(open(os.path.join(basedir, 'jobs', job_name, 'build_records', build, 'state.json'), 'r')) except OSError: pass except OSError: pass ensure_dir(basedir) json.dump(data, open(os.path.join(basedir, 'summary.json'), 'w'))
def run(schmenkins, job, info, build): source_job = schmenkins.get_job(itpl(info['project'], build.parameters())) if info['which-build'] == 'specific-build': source_build = SchmenkinsBuild(source_job, build_number=itpl(info['build-number'], build.parameters())) else: raise UnsupportedConfig(info['which-build']) target_dir = job.workspace() if 'target' in info: target_dir = os.path.join(target_dir, info['target']) ensure_dir(target_dir) source_dir = source_build.artifact_dir() fileset = formic.FileSet(directory=source_dir, include=info['filter']) for f in fileset.qualified_files(absolute=False): shutil.copy(os.path.join(source_dir, f), os.path.join(target_dir, f))
def summary_file(self): ensure_dir(self.basedir) return os.path.join(self.basedir, 'summary.json')
def state_file(self): ensure_dir(self.basedir) return os.path.join(self.basedir, 'state.json')