| #!/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() |