Merge: share/libgc: option to use a local version of the source pkgs
[nit.git] / misc / jenkins / check_contrib.sh
1 #!/bin/bash
2 # This file is part of NIT ( http://www.nitlanguage.org ).
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 # Check the build and the execution of software in examples/ and contrib/
17 # The script must be run from the root Nit directory.
18 #
19 # various .xml junit file will be generated in the root directory for jenkins.
20
21 projects=`echo examples/*/Makefile contrib/*/Makefile`
22
23 failed=
24 for p in $projects; do
25 dir=`dirname "$p"`
26 name=`basename "$dir"`
27 echo "*** make $dir ***"
28 if misc/jenkins/unitrun.sh "run-$name-make" make -C "$dir"; then
29 # Make OK, is there a `check` rule?
30 make -C "$dir" check -n 2>/dev/null || continue
31 echo "*** makecheck $dir ***"
32 if misc/jenkins/unitrun.sh "run-$name-makecheck" make -C "$dir" check; then
33 :
34 else
35 failed="$failed $name-check"
36 fi
37
38 else
39 failed="$failed $name"
40 fi
41 done
42 grep '<error message' *-make.xml *-makecheck.xml
43 if test -n "$failed"; then
44 echo "FAILED: $failed"
45 exit 1
46 fi
47 exit 0