def push_docs(commit_id, doc_host): if DEVDOCS_DIR and doc_host is not None: tarname = 'html.tar.gz' tarpath = os.path.join(get_commit_dir(commit_id), 'host_results', doc_host, tarname) try: with settings(host_string='*****@*****.**'): # tar up the docs so we can upload them to the server # put the docs on the server and untar them put(tarpath, '%s/%s' % (DEVDOCS_DIR, tarname)) with cd(DEVDOCS_DIR): run('tar xzf %s' % tarname) run('rm -rf dev_docs') run('mv html dev_docs') run('rm -f %s' % tarname) except Exception as err: log('ERROR: push_docs failed: %s' % str(err)) out = str(err) ret = -1 else: log('push_docs was successful') out = 'Docs built successfully' ret = 0 model.new_doc_info(commit_id, out) return out, ret else: log('push_docs was skipped') return '', 0 # allow update of production dev docs to be turned off during debugging
def push_docs(commit_id, doc_host): if DEVDOCS_DIR and doc_host is not None: tarname = 'html.tar.gz' tarpath = os.path.join(get_commit_dir(commit_id), 'host_results', doc_host, tarname) try: if not os.path.isfile(tarpath): raise OSError("docs tar file '%s' was not found" % tarfile) cmds = [ 'tar xzf %s' % tarname, 'rm -rf dev_docs', 'mv html dev_docs', 'rm -f %s' % tarname, ] if socket.gethostname() == DOC_DEST_HOST: # local, so don't use fabric print "docs are already local" startdir = os.getcwd() try: print "changing dir to %s" % os.path.join(os.environ['HOME'], DEVDOCS_DIR) os.chdir(os.path.join(os.environ['HOME'], DEVDOCS_DIR)) print "copying %s to %s" % (tarpath, tarname) shutil.copy(tarpath, tarname) for cmd in cmds: print "running cmd: %s" % cmd subprocess.check_call(cmd, cwd=os.getcwd(), shell=True) finally: os.chdir(startdir) else: print "docs are remote. push to doc dest host %s" % DOC_DEST_HOST with settings(host_string='openmdao@%s' % DOC_DEST_HOST): # tar up the docs so we can upload them to the server # put the docs on the server and untar them put(tarpath, '%s/%s' % (DEVDOCS_DIR, tarname)) with cd(DEVDOCS_DIR): for cmd in cmds: run(cmd) except Exception as err: log('ERROR: push_docs failed: %s' % str(err)) out = str(err) ret = -1 else: log('push_docs was successful') out = 'Docs built successfully' ret = 0 model.new_doc_info(commit_id, out) return out, ret else: log('push_docs was skipped') return '', 0 # allow update of production dev docs to be turned off during debugging