From: Henri Sara Date: Tue, 1 Nov 2016 13:39:26 +0000 (+0200) Subject: Add new publish report script X-Git-Tag: 8.0.0.alpha6~19 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=abd4e816f795a5bd402e9084d2faa4de15d14faa;p=vaadin-framework.git Add new publish report script Change-Id: Ie71a9ddf99e6e381ed5d5d873bc8eba7cefa1665 --- diff --git a/scripts/GeneratePublishReportPart1.py b/scripts/GeneratePublishReportPart1.py new file mode 100644 index 0000000000..beedcb5b82 --- /dev/null +++ b/scripts/GeneratePublishReportPart1.py @@ -0,0 +1,95 @@ +#coding=UTF-8 + +try: + import requests +except Exception as e: + print("GeneratePublishReportPart1 depends on requests library. Install it with `pip install requests`") + sys.exit(1) +import argparse, cgi, re +from os.path import exists, isdir +from os import makedirs + +metadataChecks = { + 'https://vaadin.com/download/LATEST7': '^7\..*', + 'https://vaadin.com/download/VERSIONS_7': '^7\..*', + 'https://vaadin.com/download/release/7.7/LATEST': '^7\..*', + 'https://vaadin.com/download/LATEST': '^6\..*', + 'https://vaadin.com/download/PRERELEASES': '^{ver}' +} + +parser = argparse.ArgumentParser(description="Post-publish report generator") +parser.add_argument("version", type=str, help="Vaadin version that was just built") +parser.add_argument("buildResultUrl", type=str, help="URL for the build result page") + +args = parser.parse_args() + +traffic_light = "" + +def getTrafficLight(b): + return traffic_light.format(color="green") if b else traffic_light.format(color="red") + +resultPath = "result" +if not exists(resultPath): + makedirs(resultPath) +elif not isdir(resultPath): + print("Result path is not a directory.") + sys.exit(1) + +(major, minor, maintenance) = args.version.split(".", 2) +prerelease = "." in maintenance +if prerelease: + maintenance = maintenance.split('.')[0] + +def checkUrlContents(url, regexp): + r = requests.get(url) + return re.match(regexp, r.text) != None + +def checkUrlStatus(url): + r = requests.get(url) + return r.status_code == 200 + +metadataOk = True +for url in metadataChecks: + metadataOk = metadataOk and checkUrlContents(url, metadataChecks[url].format(ver=args.version)) + +tagOk = checkUrlStatus("https://github.com/vaadin/vaadin/releases/tag/{ver}".format(ver=args.version)) + +if not prerelease: + downloadPageOk = checkUrlStatus("https://vaadin.com/download/release/{maj}.{min}/{ver}/".format(maj=major, min=minor, ver=args.version)) +else: + downloadPageOk = checkUrlStatus("https://vaadin.com/download/prerelease/{maj}.{min}/{maj}.{min}.{main}/{ver}".format(maj=major, min=minor, main=maintenance, ver=args.version)) + +content = """ + + + + + + +""".format(metadataOk=getTrafficLight(metadataOk), tagOk=getTrafficLight(tagOk), downloadPageOk=getTrafficLight(downloadPageOk)) + +if not prerelease: + content += "".format(ver=args.version) +else: + content += "".format(ver=args.version) + + +if not prerelease: + content += '' + +content += """ + +""".format(version=args.version) + +if not prerelease: + content += '' + +content += """ + + +
{metadataOk}Metadata ok on vaadin.com
{tagOk}Tag ok on github.com
{downloadPageOk}Download folder on vaadin.com contains the version
Check {ver} is published to maven.org (might take a while)
Check {ver} is published as prerelease to maven.vaadin.com
Set latest version to default
Verify uploaded to test.vaadin.com
Verify API version list updated
Batch update tickets in Trac
Publish result page (See test results, pin and tag build and dependencies)
+ +""".format(url=args.buildResultUrl, version=args.version) + +f = open("result/report.html", 'w') +f.write(content)