Commit a5f3fee8 authored by Jędrzej Nowacki's avatar Jędrzej Nowacki
Browse files

Post Qt doc bot logs in case of a build failure.


Change-Id: I9af54a1c6a75159a5f18f318f5e99332d8437dcc
Reviewed-by: default avatarFrederik Gladhorn <frederik.gladhorn@digia.com>
parent a78a0594
No related merge requests found
Showing with 40 additions and 4 deletions
......@@ -62,6 +62,26 @@ config = None # configuration object, it is initialized in main and passed to ev
def pasteKDE(data):
import httplib, urllib, json
params = urllib.urlencode({'paste_data': data,
'paste_lang': 'text',
'api_submit': True,
'mode': 'json',
'paste_project':'Qt',
'paste_user': 'Qt Doc bot',
'paste_private': 'yes',
'paste_expire': 2629744 # around 1 month
})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection("paste.kde.org")
try:
conn.request("POST", "", params, headers)
response = json.loads(conn.getresponse().read())
logging.debug("Making a paste %s", response)
return "http://paste.kde.org/" + str(response['result']['id']) + "/" + str(response['result']['hash'])
finally:
conn.close()
#make sub-qdoc in src/tools
def run_qdoc(module_name):
......@@ -70,8 +90,18 @@ def run_qdoc(module_name):
environment = os.environ
environment["CCACHE_BASEDIR"] = os.getcwd()
environment["QT_HASH_SEED"] = "1234"
cmd = "(./configure -opensource -confirm-license -release && make sub-src-qmake_all && cd src/tools && make sub-qdoc) > /dev/null"
subprocess.check_call(cmd, shell=True, env=environment)
for cmd in ["/bin/sh ./configure --opensource --confirm-license --release", "make sub-src-qmake_all", "make -Csrc/tools sub-qdoc"]:
logging.debug("Executing command: %s", cmd)
try:
proc = subprocess.Popen(cmd.split(), env=environment, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
buildOutput = proc.communicate()[0]
except Exception, e:
logging.error("Unknown error. Command execution failed: %s", str(e))
raise e
if proc.returncode:
raise subprocess.CalledProcessError(proc.returncode, cmd, buildOutput)
cmd = "make html_docs".split()
output.append(subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environment).communicate()[1])
def smart_concatenate(r, x):
......@@ -99,7 +129,7 @@ def post_review(event, message, score):
logging.debug(command)
if not config.sandbox:
subprocess.check_call(command)
elif event["change"]["number"] == '33219' or event["change"]["number"] == '33224':
elif event["change"]["number"] == '48230':
subprocess.check_call(command)
def remove_moved_doc_errors(fixes, errors):
......@@ -285,7 +315,13 @@ def process_event(event_string):
output_with_patch = run_qdoc(module_name)
except subprocess.CalledProcessError, e:
logging.debug("RUNNING QDOC FAILED: %s", e)
msg = "Running command\n " + str(e.cmd) + "\nfailed."
msg = "Qt Doc Bot tried to build the change on Linux, without success. Most likely because of a bug in the patch. "
msg += "Please verify that a clean build works."
msg += "\n\nRunning command\n " + str(e.cmd) + "\nfailed."
if e.output != None:
link = pasteKDE(e.output)
msg += "\n\nBuild log can be found here: "
msg += link
post_review(event, msg, -1)
return -1
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment