|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [OSSTEST PATCH 25/33] New utility mg-adjust-flight-makexrefs
On Thu, 2015-09-17 at 18:37 +0100, Ian Jackson wrote:
> This provides a fairly cooked way of adjusting an existing flight to
> reuse previous builds.
>
> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
How exciting.
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
> v2: New patch
> ---
> mg-adjust-flight-makexrefs | 83
> ++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 83 insertions(+)
> create mode 100755 mg-adjust-flight-makexrefs
>
> diff --git a/mg-adjust-flight-makexrefs b/mg-adjust-flight-makexrefs
> new file mode 100755
> index 0000000..ebbac15
> --- /dev/null
> +++ b/mg-adjust-flight-makexrefs
> @@ -0,0 +1,83 @@
> +#!/bin/bash
> +#
> +# usage: ./mg-adjust-flight-makexrefs [OPTIONS..] FLIGHT \
> +# '[!]JOB-GLOB ...' \
> +# REF-CONDS...
> +#
> +# JOB-GLOB is as for shell `case'. Sense of first match is used.
> +# If no match for a job, uses reverse of sense of last glob.
> +#
> +# ! means keep such jobs in FLIGHT. Without ! means delete each such
> +# job from FLIGHT and replace intra-flight references to it with
> +# references to the same job in a suitable other flight.
> +#
> +# `Suitable' means one in which the required job passed, subject to
> +# REF-CONDS (which are passed to sg-check-tested). REF-CONDS really
> +# ought to include --blessings=BLESSING,... and should probably also
> +# include some --branch=REF-BRANCH.
> +#
> +# Options:
> +# -v Pass -v to cs-adjust-flight
> +# -D Print our own debugging output to stderr (consider
> +# passing --debug in REF-CONDS too)
> +# -n Dry run: do not actually run cs-adjust-flight
> +
> +set -e
> +
> +exec 3>/dev/null
> +verbose=''
> +
> +badusage () { echo >&2 "$0: bad usage"; exit 1; }
> +
> +while true; do
> + case "$1" in
> + -n) dryrun="echo" ;;
> + -v) verbose=-v ;;
> + -D) exec 3>&2 ;;
> + -*) badusage ;;
> + *) break ;;
> + esac
> + shift
> +done
> +
> +if [ $# -le 2 ]; then badusage; fi
> +
> +flight=$1; shift
> +keepjobs=$1; shift
> +
> +for j in `./cs-adjust-flight $flight jobs-list '^build-'`; do
> +
> + tokeep=continue
> + todelete=:
> +
> + for glob in $keepjobs; do
> + case "$glob" in
> + !*) ifmatch=$tokeep; action=$todelete ; glob="${glob#!}"
> ;;
> + *) ifmatch=$todelete; action=$tokeep ;;
> + esac
> +
> + case "$j" in
> + $glob)
> + action=$ifmatch
> + echo >&3 "ADJUST XREF $j match=$glob $action"
> + break
> + ;;
> + esac
> + done
> +
> + # `doaction=continue' => job remains
> + # `doaction=:' => job gets deleted
> + echo >&3 "ADJUST XREF $j ACTION $action"
> + $action
> +
> + # OK, process $j
> +
> + ref=`./sg-check-tested --pass-job="$j" "$@"`
> + echo >&3 "ADJUST XREF $j r=$ref"
> + if [ "x$ref" = x ]; then continue; fi
> +
> + $dryrun \
> + ./cs-adjust-flight $verbose $flight \
> + runvar-change . '/buildjob$' "$j" "$ref.$j" \
> + jobs-del "$j"
> +done
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |