From b517f01047a402deb162b72ec7362c19584ee4f0 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 29 Jun 2019 00:41:35 +0200 Subject: [PATCH] Travis CI: add SonarCloud integration for static code analysis [skip azurepipelines] --- .travis.yml | 8 +++++++ scripts/travis-ci/script.bash | 40 +++++++++++++++++++++++------------ sonar-project.properties | 9 ++++++++ 3 files changed, 43 insertions(+), 14 deletions(-) create mode 100644 sonar-project.properties diff --git a/.travis.yml b/.travis.yml index e45e980c2..b5b017f39 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,14 @@ sudo: required # Required for apt-get build-dep language: cpp compiler: gcc +addons: + sonarcloud: + organization: "mumble-voip" + +cache: + directories: + - '$HOME/.sonar/cache' + matrix: include: - os: linux diff --git a/scripts/travis-ci/script.bash b/scripts/travis-ci/script.bash index bfbc7f62b..000a8223f 100755 --- a/scripts/travis-ci/script.bash +++ b/scripts/travis-ci/script.bash @@ -17,20 +17,32 @@ if [ "${TRAVIS_OS_NAME}" == "linux" ]; then if [ "${MUMBLE_NO_PCH}" == "1" ]; then EXTRA_CONFIG="no-pch ${EXTRA_CONFIG}" fi - qmake CONFIG+="release tests g15-emulator ${EXTRA_CONFIG}" DEFINES+="MUMBLE_VERSION=${TRAVIS_COMMIT:0:7}" -recursive && make -j2 && make check - # The next few lines should really be done by "make install"; https://github.com/mumble-voip/mumble/issues/1029 - mkdir -p appdir/usr/bin appdir/usr/lib/mumble appdir/usr/share/metainfo/ appdir/usr/share/icons/scalable/apps/ appdir/usr/share/applications/ - cp release/lib* appdir/usr/lib/ - cp release/mumble appdir/usr/bin - cp release/plugins/lib* appdir/usr/lib/mumble/ - cp scripts/mumble.desktop appdir/usr/share/applications/ - cp scripts/mumble.appdata.xml appdir/usr/share/metainfo/ - cp icons/mumble.svg appdir/usr/share/icons/scalable/apps/ - wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" - chmod a+x linuxdeployqt-continuous-x86_64.AppImage - ./linuxdeployqt-continuous-x86_64.AppImage $(find $HOME -type d -name 'appdir'| head -n 1)/usr/share/applications/*.desktop -appimage -extra-plugins=sqldrivers/libqsqlite.so - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh - bash upload.sh Mumble*.AppImage* + qmake CONFIG+="release tests g15-emulator ${EXTRA_CONFIG}" DEFINES+="MUMBLE_VERSION=${TRAVIS_COMMIT:0:7}" -recursive + if [ "${MUMBLE_NO_PCH}" == "1" ]; then + # Wraps the compilation with the Build Wrapper to generate the configuration used later by the SonarQube Scanner. + mkdir build + build-wrapper-linux-x86-64 --out-dir build/sonar make -j 2 + make check + + # Run the SonarQube analysis + sonar-scanner + else + make -j2 && make check + + # The next few lines should really be done by "make install"; https://github.com/mumble-voip/mumble/issues/1029 + mkdir -p appdir/usr/bin appdir/usr/lib/mumble appdir/usr/share/metainfo/ appdir/usr/share/icons/scalable/apps/ appdir/usr/share/applications/ + cp release/lib* appdir/usr/lib/ + cp release/mumble appdir/usr/bin + cp release/plugins/lib* appdir/usr/lib/mumble/ + cp scripts/mumble.desktop appdir/usr/share/applications/ + cp scripts/mumble.appdata.xml appdir/usr/share/metainfo/ + cp icons/mumble.svg appdir/usr/share/icons/scalable/apps/ + wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" + chmod a+x linuxdeployqt-continuous-x86_64.AppImage + ./linuxdeployqt-continuous-x86_64.AppImage $(find $HOME -type d -name 'appdir'| head -n 1)/usr/share/applications/*.desktop -appimage -extra-plugins=sqldrivers/libqsqlite.so + wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh + bash upload.sh Mumble*.AppImage* + fi elif [ "${MUMBLE_QT}" == "qt5" ] && [ "${MUMBLE_HOST}" == "i686-w64-mingw32" ]; then wget http://www.steinberg.net/sdk_downloads/asiosdk2.3.zip -P ../ unzip ../asiosdk2.3.zip -d ../ diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 000000000..583da0c87 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,9 @@ +sonar.projectKey=mumble-voip_mumble +sonar.projectName=Mumble + +sonar.sources=src +sonar.tests=src/tests + +sonar.sourceEncoding=UTF-8 + +sonar.cfamily.threads=2