Skip to content
Snippets Groups Projects
is-docker-latest.py 1.21 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/usr/bin/env python3
    import argparse
    import json
    import sys
    from distutils.version import StrictVersion
    
    
    def main(current, releases_json):
        try:
            version = StrictVersion(current)
        except ValueError:
            print("Version number '{}' isn't valid".format(current))
            sys.exit(1)
    
        releases = json.loads(releases_json)
        latest_release = releases["releases"][0]["id"]
    
        if version != latest_release:
            print(
                "Version number '{}' doesn't match latest release {}".format(
                    current, latest_release
                )
            )
            sys.exit(1)
        print("Version number '{}' is latest release!".format(current))
    
    
    if __name__ == "__main__":
        parser = argparse.ArgumentParser(
            description="""
            Exit with code 0 if the given version matches the latest one
            fron the list of releases found in releases_json. Primary use
            is to check whether the current version can be safely pushed
            as the latest one on the docker Hub.
        """
        )
        parser.add_argument("current", help="Current version")
        parser.add_argument("releases_json", type=argparse.FileType("r"))
        args = parser.parse_args()
        main(args.current, args.releases_json.read())