Merge: doc: fixed some typos and other misc. corrections
[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 lib/, 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 # Arguments will be additional `make` rules to execute. eg.
22 #
23 # check_contrib.sh check android
24
25 projects=`ls -1 lib/*/Makefile examples/*/Makefile contrib/*/Makefile | grep -v contrib/nitc/`
26 rules=$*
27
28 failed=
29 for p in $projects; do
30 dir=`dirname "$p"`
31 name=`basename "$dir"`
32 echo "### in $dir ###"
33 # Check each rules, if they exists
34 for rule in $rules; do
35 make -C "$dir" $rule -n >/dev/null 2>/dev/null || {
36 # Special case for `all` that falls back as the default target
37 if [ "$rule" = "all" ]; then
38 echo "*** make -C $dir ***"
39 misc/jenkins/unitrun.sh "cmd-$name-make" make -C "$dir" ||
40 failed="$failed $name"
41 fi
42 continue
43 }
44 echo "*** make $rule -C $dir ***"
45 misc/jenkins/unitrun.sh "cmd-$name-make$rule" make -C "$dir" $rule ||
46 failed="$failed $name-$rule"
47 done
48 done
49 grep '<error message' *-make*.xml
50 if test -n "$failed"; then
51 echo "FAILED: $failed"
52 exit 1
53 fi
54 exit 0