X-Git-Url: http://nitlanguage.org diff --git a/misc/jenkins/check_contrib.sh b/misc/jenkins/check_contrib.sh index 4b481e3..df81660 100755 --- a/misc/jenkins/check_contrib.sh +++ b/misc/jenkins/check_contrib.sh @@ -17,29 +17,36 @@ # The script must be run from the root Nit directory. # # various .xml junit file will be generated in the root directory for jenkins. +# +# Arguments will be additional `make` rules to execute. eg. +# +# check_contrib.sh check android projects=`echo lib/*/Makefile examples/*/Makefile contrib/*/Makefile` +rules=$* failed= for p in $projects; do dir=`dirname "$p"` name=`basename "$dir"` - echo "*** make $dir ***" - if misc/jenkins/unitrun.sh "cmd-$name-make" make -C "$dir"; then - # Make OK, is there a `check` rule? - make -C "$dir" check -n 2>/dev/null || continue - echo "*** makecheck $dir ***" - if misc/jenkins/unitrun.sh "cmd-$name-makecheck" make -C "$dir" check; then - : - else - failed="$failed $name-check" - fi - - else - failed="$failed $name" - fi + echo "### in $dir ###" + # Check each rules, if they exists + for rule in $rules; do + make -C "$dir" $rule -n >/dev/null 2>/dev/null || { + # Special case for `all` that falls back as the default target + if [ "$rule" = "all" ]; then + echo "*** make -C $dir ***" + misc/jenkins/unitrun.sh "cmd-$name-make" make -C "$dir" || + failed="$failed $name" + fi + continue + } + echo "*** make $rule -C $dir ***" + misc/jenkins/unitrun.sh "cmd-$name-make$rule" make -C "$dir" $rule || + failed="$failed $name-$rule" + done done -grep '