def _remote_build_and_test(fname=None, pyversion='python', keep=False, branch=None, testargs='', hostname='', cfg=None, **kwargs): if fname is None: raise RuntimeError("_remote_build_and_test: missing arg 'fname'") remotedir = get_tmp_user_dir() remote_mkdir(remotedir) locbldtstfile = os.path.join(os.path.dirname(__file__), 'loc_bld_tst.py') pushfiles = [locbldtstfile] build_type = 'release' if fname.endswith('.py') else 'dev' if cfg and cfg.has_option(hostname, 'pull_docs')and build_type == 'dev': pull_docs = cfg.getboolean(hostname, 'pull_docs') else: pull_docs = False if os.path.isfile(fname): pushfiles.append(fname) remoteargs = ['-f', os.path.basename(fname)] elif os.path.isdir(fname): put_dir(fname, os.path.join(remotedir, os.path.basename(fname))) if sys.platform.startswith('win'): vername = 'latest' # readlink doesn't work on windows, so try 'latest' else: vername = os.readlink(os.path.join(fname, 'downloads', 'latest')) remoteargs = ['-f', os.path.join(os.path.basename(fname), 'downloads', vername, 'go-openmdao-{}.py'.format(vername))] else: remoteargs = ['-f', fname] if branch: remoteargs.append('--branch=%s' % branch) if testargs: remoteargs.append('--testargs="%s"' % testargs) try: result = push_and_run(pushfiles, runner=pyversion, remotedir=remotedir, args=remoteargs) if pull_docs: print "pulling docs from %s" % hostname retrieve_docs(os.path.join('~', remotedir)) print "doc retrieval successful" else: print "not pulling docs from %s because pull_docs is False" % hostname return result.return_code finally: if build_type == 'dev': print "pulling any pngs from %s" % hostname try: retrieve_pngs(os.path.join('~', remotedir)) print "png retrieval successful" except Exception as exc: print "png retrieval failed:", exc if not keep: print "removing remote directory: %s" % remotedir rm_remote_tree(remotedir)
def _remote_build_and_test(fname=None, pyversion='python', keep=False, branch=None, testargs='', hostname='', cfg=None, **kwargs): if fname is None: raise RuntimeError("_remote_build_and_test: missing arg 'fname'") remotedir = get_tmp_user_dir() remote_mkdir(remotedir) locbldtstfile = os.path.join(os.path.dirname(__file__), 'loc_bld_tst.py') pushfiles = [locbldtstfile] build_type = 'release' if fname.endswith('.py') else 'dev' if cfg and cfg.has_option(hostname, 'pull_docs') and build_type == 'dev': pull_docs = cfg.getboolean(hostname, 'pull_docs') else: pull_docs = False if os.path.isfile(fname): pushfiles.append(fname) remoteargs = ['-f', os.path.basename(fname)] elif os.path.isdir(fname): put_dir(fname, os.path.join(remotedir, os.path.basename(fname))) if sys.platform.startswith('win'): vername = 'latest' # readlink doesn't work on windows, so try 'latest' else: vername = os.readlink(os.path.join(fname, 'downloads', 'latest')) remoteargs = [ '-f', os.path.join(os.path.basename(fname), 'downloads', vername, 'go-openmdao.py') ] else: remoteargs = ['-f', fname] if branch: remoteargs.append('--branch=%s' % branch) if testargs: remoteargs.append('--testargs="%s"' % testargs) try: result = push_and_run(pushfiles, runner=pyversion, remotedir=remotedir, args=remoteargs) if pull_docs: print "pulling docs from %s" % hostname retrieve_docs(os.path.join('~', remotedir)) print "doc retrieval successful" else: print "not pulling docs from %s because pull_docs is False" % hostname return result.return_code finally: if build_type == 'dev': print "pulling any pngs from %s" % hostname try: retrieve_pngs(os.path.join('~', remotedir)) print "png retrieval successful" except Exception as exc: print "png retrieval failed:", exc if not keep: print "removing remote directory: %s" % remotedir rm_remote_tree(remotedir)