[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 for-4.10] scripts: introduce a script for build test
Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: George Dunlap <George.Dunlap@xxxxxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: Tim Deegan <tim@xxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> Cc: Julien Grall <julien.grall@xxxxxxx> Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx> v4: 1. Check, save/restore $?. 2. Don't use trap, check exit code directly. 3. More error messages. v3: 1. Use git-clean in default rune. 2. Print more friendly message. 3. Restore HEAD automatically. --- scripts/build-test.sh | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 scripts/build-test.sh diff --git a/scripts/build-test.sh b/scripts/build-test.sh new file mode 100755 index 0000000000..413540c13b --- /dev/null +++ b/scripts/build-test.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +# Run command on every commit within the range specified. If no command is +# provided, use the default one to clean and build the whole tree. +# +# The default rune is rather simple. To do a cross-build, please put your usual +# build rune in a shell script and invoke it with this script. + +if ! test -f xen/common/kernel.c; then + echo "Please run this script from top-level directory" + exit 1 +fi + +if test $# -lt 2 ; then + echo "Usage: $0 <BASE> <TIP> [CMD]" + exit 1 +fi + +status=`git status -s` +if test -n "$status"; then + echo "Tree is dirty, aborted" + exit 1 +fi + +BASE=$1; shift +TIP=$1; shift + +ORIG_BRANCH=`git symbolic-ref -q --short HEAD` +if test $? -ne 0; then + echo "Detached HEAD, aborted" + exit 1 +fi + +git rev-list $BASE..$TIP | nl -ba | tac | \ +while read num rev; do + echo "Testing $num $rev" + + git checkout $rev + ret=$? + if test $ret -ne 0; then + echo "Failed to checkout $num $rev with $ret" + exit $ret + fi + + if test $# -eq 0 ; then + git clean -fdx && ./configure && make -j4 + else + "$@" + fi + ret=$? + if test $ret -ne 0; then + echo "Failed at $num $rev with $ret" + exit $ret + fi + echo +done + +ret=$? + +echo "Restoring original HEAD" +git checkout $ORIG_BRANCH +gco_ret=$? +if test $gco_ret -ne 0; then + echo "Failed to restore orignal HEAD. Check tree status before doing anything else!" + exit $gco_ret +fi + +if test $ret -eq 0; then + echo "ok." +fi +exit $ret -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |