From 115c4a1715da45dc8ce43779fa87949993d0c5fd Mon Sep 17 00:00:00 2001 From: Ralf Jung <jung@mpi-sws.org> Date: Wed, 24 Feb 2016 09:09:25 +0100 Subject: [PATCH] first version of a script ti extract benachmark results from GitLab --- benchmark/gitlab-extract.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 benchmark/gitlab-extract.py diff --git a/benchmark/gitlab-extract.py b/benchmark/gitlab-extract.py new file mode 100755 index 000000000..dfc0e181d --- /dev/null +++ b/benchmark/gitlab-extract.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +import argparse, pprint +import requests + +def first(it): + for i in it: + return i + raise Exception("The iterator is empty") + +def req(path): + url = '%s/api/v3/%s' % (args.server, path) + return requests.get(url, headers={'PRIVATE-TOKEN': args.private_token}).json() + +# read command-line arguments +parser = argparse.ArgumentParser(description='Update and build a bunch of stuff') +parser.add_argument("-t", "--private-token", + dest="private_token", required=True, + help="The private token used to authenticate access") +parser.add_argument("-s", "--server", + dest="server", default="https://gitlab.mpi-sws.org/", + help="The GitLab server to contact") +parser.add_argument("-p", "--project", + dest="project", default="FP / iris-coq", + help="The name of the project on GitLab") +args = parser.parse_args() +pp = pprint.PrettyPrinter(indent=4) + +projects = req("projects") +project = first(filter(lambda p: p['name_with_namespace'] == args.project, projects)) + +commit = "7e49776c0b3565364823665ab11ee91ed95ade63" + +build = first(sorted(req("/projects/{}/repository/commits/{}/builds".format(project['id'], commit)), key = lambda b: -int(b['id']))) +print("The build ID is {}".format(build['id'])) +print(requests.get("{}/{}/builds/{}/artifacts/file/build-time.txt".format(args.server, args.project.replace(' ', ''), build['id'])).text) -- GitLab