Fam Zheng <f...@redhat.com> writes:

> The script is not named test-travis.sh so it won't run with "make
> docker-run", because it can take too long.
>
> Run it with "make docker-run-travis.sh@ubuntu".

16:08 alex@zen/x86_64  [qemu.git/review/docker-v3] >make 
docker-run-travis.sh@ubuntu
ARCHIVE qemu.tgz
COPY RUNNER
RUN travis.sh in ubuntu
./run: line 49: /tmp/qemu-test/src/tests/docker/travis.sh: No such file or 
directory

>
> Signed-off-by: Fam Zheng <f...@redhat.com>
> ---
>  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 <f...@redhat.com>
> +#
> +# 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 <f...@redhat.com>
> +#
> +# 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