From: Jean Privat Date: Thu, 28 Aug 2014 02:16:20 +0000 (-0400) Subject: misc: make public some scripts used by Jenkins X-Git-Tag: v0.6.8~2^2~8 X-Git-Url: http://nitlanguage.org misc: make public some scripts used by Jenkins Signed-off-by: Jean Privat --- diff --git a/misc/jenkins/README b/misc/jenkins/README new file mode 100644 index 0000000..7fbe77c --- /dev/null +++ b/misc/jenkins/README @@ -0,0 +1 @@ +Some scripts used by the Nit Jenkins for continuous integration, but you can use them also. diff --git a/misc/jenkins/checksignedoffby.sh b/misc/jenkins/checksignedoffby.sh new file mode 100755 index 0000000..bebd200 --- /dev/null +++ b/misc/jenkins/checksignedoffby.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Check missing signed-off-by in commits + +if test "$#" -lt 2; then + echo "Usage: checksignedoffby from to" + echo "" + exit +fi + +from=$1 +to=$2 + +err=0 + +for ref in `git rev-list --no-merges "$from".."$to"`; do + # What is the expected? + sig=`git --no-pager show -s --format='Signed-off-by: %an <%ae>' $ref` + # Do we found some signed-off-by? + git --no-pager show -s --format="%b" $ref | grep "^Signed-off-by:" > check_signedoff_list.out || { + git --no-pager show -s --oneline $ref + echo "Missing $sig" + err=1 + continue + } + # Do we found the expected thing? + cat check_signedoff_list.out | grep -q "^$sig\$" && continue + git --no-pager show -s --oneline $ref + echo "Bad or missing $sig; got:" + cat check_signedoff_list.out + err=1 +done + +rm check_signedoff_list.out 2> /dev/null + +exit $err diff --git a/misc/jenkins/unitrun.sh b/misc/jenkins/unitrun.sh new file mode 100755 index 0000000..c652286 --- /dev/null +++ b/misc/jenkins/unitrun.sh @@ -0,0 +1,51 @@ +#!/bin/bash +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This shell script executes a shell command and generates a JUnit compatible XML file + +if test $# -lt 2; then + echo "Usage: unitrun.sh name command" + echo "Runs the command and generates a JUnit XML file name.xml" + exit +fi + +name=$1 +shift + +# Magic here! This tee and save both stdout and stderr in distinct files without messing with them +# Time just get the user time +/usr/bin/time -f%U -o "${name}.t.out" "$@" > >(tee "${name}.out") 2> >(tee "${name}.2.out" >&2) +res=$? + +cat > "${name}.xml"< + +END +if test "$res" != "0"; then +echo >> "${name}.xml" "" +echo "+ Command returned $res" >&2 +fi +cat >> "${name}.xml"< + + + +END + +rm "${name}.out" "${name}.2.out" "${name}.t.out"