#!/usr/bin/env python3 # Copyright (c) 2020 Intel Corp. # SPDX-License-Identifier: Apache-2.0 import json import argparse import urllib.request from git import Git VERSIONS_FILE = "versions.json" def parse_args(): parser = argparse.ArgumentParser( description="Manage versions to be tested.") parser.add_argument('-l', '--list', action="store_true", help="List all published versions") parser.add_argument('-u', '--update', help="Update versions file from tree.") parser.add_argument('-L', '--latest', action="store_true", help="Get latest published version") return parser.parse_args() def get_versions(): data = None url = 'https://testing.zephyrproject.org/daily_tests/versions.json' urllib.request.urlretrieve(url, 'versions.json') with open("versions.json", "r") as fp: data = json.load(fp) return data def show_versions(): data = get_versions() for v in data: print(f"- {v}") def show_latest(): data = get_versions() print(data[-1]) def update(git_tree): g = Git(git_tree) version = g.describe() published = False data = get_versions() if version in data: published = True print("version already published") else: print(f"New version {version}, adding to file...") if data and not published: with open(VERSIONS_FILE, "w") as versions: data.append(version) json.dump(data, versions) def main(): args = parse_args() if args.update: update(args.update) elif args.list: show_versions() elif args.latest: show_latest() if __name__ == "__main__": main()