diff --git a/hudson-sflphone-script.sh b/hudson-sflphone-script.sh index a34919d738319aa768d90c05ce9297d2faff8072..476f0eba1c92458ae381c96f371436335e87f955 100755 --- a/hudson-sflphone-script.sh +++ b/hudson-sflphone-script.sh @@ -4,10 +4,26 @@ # # Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> +XML_RESULTS="cppunitresults.xml" +TEST=0 +BUILD= +CODE_ANALYSIS=0 + +function run_code_analysis { + # Check if cppcheck is installed on the system + if [ `which cppcheck &>/dev/null ; echo $?` -ne 1 ] ; then + cppcheck . --enable=all --xml 2> cppcheck-report.xml + fi +} + function build_daemon { # Compile the daemon pushd daemon + # Run static analysis code tool + if [ $CODE_ANALYSIS == 1 ]; then + run_code_analysis + fi make distclean ./autogen.sh # Compile pjproject first @@ -18,12 +34,15 @@ function build_daemon { popd ./configure --prefix=/usr make clean + # Compile src code make -j + # Generate documentation make doc + # Compile unit tests make check popd - if [ $1 == 1 ]; then + if [ $TEST == 1 ]; then # Run the unit tests for the daemon pushd daemon/test # Remove the previous XML test file @@ -63,11 +82,8 @@ fi git clean -f -d -x -XML_RESULTS="cppunitresults.xml" -TEST=0 -BUILD= -while getopts ":b: t" opt; do +while getopts ":b: t a" opt; do case $opt in b) echo "-b was triggered. Parameter: $OPTARG" >&2 @@ -77,6 +93,10 @@ while getopts ":b: t" opt; do echo "-t was triggered. Tests will be run" >&2 TEST=1 ;; + a) + echo "-a was triggered. Static code analysis will be run" >&2 + CODE_ANALYSIS=1 + ;; \?) echo "Invalid option: -$OPTARG" >&2 exit 1 @@ -89,7 +109,7 @@ while getopts ":b: t" opt; do done # Call appropriate build function, with parameters if needed -build_$BUILD $TEST +build_$BUILD # SUCCESS exit 0