You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GenerateBuildReport.py 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #coding=UTF-8
  2. from BuildDemos import demos
  3. import argparse, subprocess
  4. parser = argparse.ArgumentParser(description="Build report generator")
  5. parser.add_argument("version", type=str, help="Vaadin version that was just built")
  6. parser.add_argument("deployUrl", type=str, help="Base url of the deployment server")
  7. parser.add_argument("buildResultUrl", type=str, help="URL for the build result page")
  8. args = parser.parse_args()
  9. content = """<html>
  10. <head></head>
  11. <body>
  12. <table>
  13. <tr><td><a href="https://dev.vaadin.com/milestone?action=new">Create milestone for next release</a></td></tr>
  14. <tr><td><a href="https://dev.vaadin.com/query?status=closed&component=Core+Framework&resolution=fixed&milestone=Vaadin {version}&col=id&col=summary&col=component&col=milestone&col=status&col=type">Closed tickets with milestone {version}</a></td></tr>
  15. <tr><td><a href="https://dev.vaadin.com/query?status=pending-release&component=Core+Framework&resolution=fixed&milestone=Vaadin {version}&col=id&col=summary&col=component&col=milestone&col=status&col=type">Pending-release tickets with milestone {version}</a></td></tr>
  16. <tr><td><a href="https://dev.vaadin.com/query?status=pending-release&milestone=">Pending-release tickets without milestone</a></td></tr>
  17. <tr><td><a href="apidiff/changes.html">API Diff</a></td></tr>
  18. <tr><td><a href="release-notes/release-notes.html">Release Notes</a></td></tr>
  19. """.format(version=args.version)
  20. try:
  21. p1 = subprocess.Popen(['find', '.', '-name', '*.java'], stdout=subprocess.PIPE)
  22. p2 = subprocess.Popen(['xargs', 'egrep', '@since ?$'], stdin=p1.stdout, stdout=subprocess.PIPE)
  23. missing = subprocess.check_output(['grep', '-v', 'tests'], stdin=p2.stdout)
  24. content += "<tr><td>Empty @since:<br>\n<pre>%s</pre></td></tr>\n" % (missing)
  25. except subprocess.CalledProcessError as e:
  26. if e.returncode == 1:
  27. content += "<tr><td>No empty @since</td></tr>\n"
  28. else:
  29. raise e
  30. content += """<tr><td><a href="{url}">Build result page (See test results, pin and tag build and dependencies)</a></td></tr>
  31. </table>
  32. </body>
  33. </html>""".format(url=args.buildResultUrl)
  34. f = open("result/report.html", 'w')
  35. f.write(content)