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