upgrade_strategy 740 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/python3
  2. import json
  3. import sys
  4. from pkg_resources import parse_version
  5. from pkg_resources.extern.packaging.version import Version
  6. def newer_mapping(image_tags):
  7. key = list(image_tags.keys())[0]
  8. if not image_tags[key]:
  9. return {}
  10. tags = {t.rsplit('-', 1)[0]: t for t in image_tags[key]}
  11. versions = [v for v in map(parse_version, tags) if isinstance(v, Version) and not v.is_prerelease]
  12. if not versions:
  13. return {}
  14. versions.sort()
  15. version = str(versions[-1])
  16. return {
  17. 'tags': {key: tags[version]},
  18. 'app_version': version,
  19. }
  20. if __name__ == '__main__':
  21. if len(sys.argv) != 2:
  22. exit(1)
  23. print(json.dumps(newer_mapping(json.loads(sys.argv[1]))))