qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 10/13] docker: Add travis tool


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH v4 10/13] docker: Add travis tool
Date: Thu, 31 Mar 2016 14:14:41 +0100
User-agent: mu4e 0.9.17; emacs 25.0.92.2

Fam Zheng <address@hidden> writes:

> The script is not prefixed with test- so it won't run with "make docker-test",
> because it can take too long.
>
> Run it with "make address@hidden".

Currently we can only really use this with ubuntu anyway. How would you
expand the matrix on other platforms? Tweak the docker files for
dependencies or feed it via travis somehow?

Anyway:

Reviewed-by: Alex Bennée <address@hidden>

>
> Signed-off-by: Fam Zheng <address@hidden>
> ---
>  tests/docker/travis    | 21 +++++++++++++++++++++
>  tests/docker/travis.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 69 insertions(+)
>  create mode 100755 tests/docker/travis
>  create mode 100755 tests/docker/travis.py
>
> diff --git a/tests/docker/travis b/tests/docker/travis
> new file mode 100755
> index 0000000..d345393
> --- /dev/null
> +++ b/tests/docker/travis
> @@ -0,0 +1,21 @@
> +#!/bin/bash -e
> +#
> +# Mimic a travis testing matrix
> +#
> +# Copyright (c) 2016 Red Hat Inc.
> +#
> +# Authors:
> +#  Fam Zheng <address@hidden>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2
> +# or (at your option) any later version. See the COPYING file in
> +# the top-level directory.
> +
> +. common.rc
> +
> +requires pyyaml
> +cmdfile=/tmp/travis_cmd_list.sh
> +$QEMU_SRC/tests/docker/travis.py $QEMU_SRC/.travis.yml > $cmdfile
> +chmod +x $cmdfile
> +cd "$QEMU_SRC"
> +$cmdfile
> diff --git a/tests/docker/travis.py b/tests/docker/travis.py
> new file mode 100755
> index 0000000..8dcc964
> --- /dev/null
> +++ b/tests/docker/travis.py
> @@ -0,0 +1,48 @@
> +#!/usr/bin/env python
> +#
> +# Travis YAML config parser
> +#
> +# Copyright (c) 2016 Red Hat Inc.
> +#
> +# Authors:
> +#  Fam Zheng <address@hidden>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2
> +# or (at your option) any later version. See the COPYING file in
> +# the top-level directory.
> +
> +import sys
> +import yaml
> +import itertools
> +
> +def load_yaml(fname):
> +    return yaml.load(open(fname, "r").read())
> +
> +def conf_iter(conf):
> +    def env_to_list(env):
> +        return env if isinstance(env, list) else [env]
> +    global_env = conf["env"]["global"]
> +    for entry in conf["matrix"]["include"]:
> +        yield {"env": global_env + env_to_list(entry["env"]),
> +               "compiler": entry["compiler"]}
> +    for entry in itertools.product(conf["compiler"],
> +                                   conf["env"]["matrix"]):
> +        yield {"env": global_env + env_to_list(entry[1]),
> +               "compiler": entry[0]}
> +
> +def main():
> +    if len(sys.argv) < 2:
> +        sys.stderr.write("Usage: %s <travis-file>\n" % sys.argv[0])
> +        return 1
> +    conf = load_yaml(sys.argv[1])
> +    for config in conf_iter(conf):
> +        print "("
> +        print "\n".join(config["env"])
> +        print "alias cc=" + config["compiler"]
> +        print "\n".join(conf["before_script"])
> +        print "\n".join(conf["script"])
> +        print ")"
> +    return 0
> +
> +if __name__ == "__main__":
> +    sys.exit(main())


--
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]