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.

ValidateVaadinDownload.py 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #coding=UTF-8
  2. import argparse, sys
  3. from urllib.request import urlopen
  4. parse = argparse.ArgumentParser(description="Check vaadin.com version lists")
  5. parse.add_argument("version", help="Released Vaadin version number")
  6. args = parse.parse_args()
  7. if hasattr(args, "echo"):
  8. print(args.echo)
  9. sys.exit(1)
  10. prerelease = None
  11. (major, minor, maintenance) = args.version.split(".", 2)
  12. if "." in maintenance:
  13. (maintenance, prerelease) = maintenance.split(".", 1)
  14. # Version without prerelease tag
  15. version = "%s.%s.%s" % (major, minor, maintenance)
  16. isPrerelease = prerelease is not None
  17. failed = False
  18. vaadin7Latest = "http://vaadin.com/download/LATEST7"
  19. vaadin7Versions = "http://vaadin.com/download/VERSIONS_7"
  20. vaadin6Latest = "http://vaadin.com/download/LATEST"
  21. vaadinPrerelease = "http://vaadin.com/download/PRERELEASES"
  22. try:
  23. latest = urlopen(vaadin7Latest).read().decode().split("\n")
  24. releaseRow = "release/%s.%s/%s" % (major, minor, version)
  25. assert (version in latest[0]) ^ isPrerelease, "Latest version mismatch. %s: %s, was: %s" % ("should not be" if isPrerelease else "should be", args.version, latest[0])
  26. assert (releaseRow in latest[1]) ^ isPrerelease, "Release row mismatch; %s: %s, was %s" % ("should not be" if isPrerelease else "should be", releaseRow, latest[1])
  27. except Exception as e:
  28. failed = True
  29. print("Latest version was not correctly updated: %s" % (e))
  30. try:
  31. assert "%s," % (args.version) in urlopen(vaadin7Versions).read().decode().split("\n"), "Released version not in version list"
  32. except Exception as e:
  33. if isPrerelease:
  34. print("Prerelease version needs to be added manually to versions!")
  35. else:
  36. failed = True
  37. print(e)
  38. try:
  39. latest = urlopen(vaadin6Latest).read().decode().split("\n")
  40. releaseRow = "release/6.8/6.8."
  41. assert ("6.8." in latest[0]), "Latest version mismatch; should be: %sX, was: %s" % ("6.8.", latest[0])
  42. assert (releaseRow in latest[1]), "Release row mismatch; should be: %sX, was %s" % (releaseRow, latest[1])
  43. except Exception as e:
  44. failed = True
  45. print("Latest Vaadin 6 version was updated by release. %s" % (e))
  46. try:
  47. latest = urlopen(vaadinPrerelease).read().decode().split("\n")
  48. assert (args.version in latest[0]) or not isPrerelease, "%s: %s, was: %s" % ("should be", args.version, latest[0])
  49. except Exception as e:
  50. print("Prerelease file was not correctly updated: %s" % (e))
  51. sys.exit(1 if failed else 0)