From 43ea3d5a4c057b1e84fe32d44ede7e6c34033fec Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Mon, 18 Jul 2022 17:05:04 +0200 Subject: [PATCH] +bin/cherry* for Jenkins. --- bin/cherrycompare | 34 ++++++++++++++++++++++++++++++++++ bin/cherrydownload | 38 ++++++++++++++++++++++++++++++++++++++ bin/cherryfilter | 20 ++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100755 bin/cherrycompare create mode 100755 bin/cherrydownload create mode 100755 bin/cherryfilter diff --git a/bin/cherrycompare b/bin/cherrycompare new file mode 100755 index 0000000..55a92cd --- /dev/null +++ b/bin/cherrycompare @@ -0,0 +1,34 @@ +#! /bin/bash +n=false +if [ $1 = -n ];then + n=true + shift +fi +diff_u="diff $(if $n;then echo -U999999999;else echo -u;fi)" +if [ $# != 2 ];then + echo >&2 "$0: " +fi +for dir in "$@";do + if [ ! -e $dir ];then + echo >&2 "!-e: $dir" + exit 1 + fi + sed -i -e 's#\(failed for \)[0-9]*\(: Operation not permitted\)#\1\2#' $(find $dir -name summary.txt) +done +dir1=$(realpath $1) +dir2=$(realpath $2) +cd $1 +( + for i in $(find -name summary.txt);do + echo "$dir1/$i -> $dir2/$i" + $diff_u $i $dir2/$i + done + function prep8 + { + sed <$1 -n 's/^\(Passed\|FAILED\): \(.*\)$/\2: \1/p'|sort + } + for i in $(find -name "*-test.release.log");do + echo "$dir1/$i -> $dir2/$i" + $diff_u <(prep8 $i) <(prep8 $dir2/$i) + done +)|if $n;then cat;else grep -v '^+++ '|grep -v '^--- '|grep -v '^[ @]';fi diff --git a/bin/cherrydownload b/bin/cherrydownload new file mode 100755 index 0000000..90c52e6 --- /dev/null +++ b/bin/cherrydownload @@ -0,0 +1,38 @@ +#! /bin/bash +for arg in $@;do + # http://cherry.azulsystems.com:8080/job/zulu17-silver-build/377/ + arg="$(echo $arg|sed 's#[a-z]\+/\?$##')" + build="$(echo $arg|sed -n 's#^.*/\([0-9]\+\)/$#\1#p')" + if [ -z "$build" ];then + echo >&2 "parse error: $arg" + exit 1 + fi + build="build$build" + if [ -e "$build" ];then + echo >&2 "exists: $build" + exit 1 + fi + mkdir $build + outcome="$(wget -O - "${arg}artifact/outcome/")" + if [ -z "$outcome" ];then + echo >&2 "no outcome: $arg" + exit 1 + fi + for release in $(echo "$outcome"|perl -ne 'while (m{}g) { print "$1\n"; }');do + # java17, java8 + ok=false + for file in test-results.tar.gz test.release.log;do + url="${arg}artifact/outcome/$release/release/$file" + if wget --read-timeout=5 -O "$build/$release-$file" "$url";then + ok=true + break + fi + rm -f "$build/$release-$file" + done + if ! $ok;then + echo >&2 "wget error" + exit 1 + fi + done + (cd $build;if compgen -G "*test-results.tar.gz";then exx *test-results.tar.gz;fi) +done diff --git a/bin/cherryfilter b/bin/cherryfilter new file mode 100755 index 0000000..681a0e1 --- /dev/null +++ b/bin/cherryfilter @@ -0,0 +1,20 @@ +#! /usr/bin/perl +use strict; +use warnings; +my $file; +while () { + if (/^[^+-]/) { + $file=$_; + next; + } + my $match; + for my $arg (@ARGV) { + $match=1 if /\Q$arg\E/; + } + next if !$match; + if (defined $file) { + print $file; + $file=undef; + } + print; +} -- 1.8.3.1