diff --git a/.travis.yml b/.travis.yml index f8433a7..eb7ce5f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +dist: trusty sudo: required language: cpp @@ -47,6 +48,8 @@ matrix: env: JSONPLAT=ON TARGET=node5 - compiler: clang env: JSONPLAT=ON TARGET=node5 + - compiler: gcc + env: TARGET=sonar-scan services: - docker diff --git a/docker-compose.yaml b/docker-compose.yaml index 716536c..8d1475d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -67,7 +67,7 @@ services: - TRAVIS_REPO_SLUG - TRAVIS_PULL_REQUEST_SLUG - GITHUB_TOKEN - command: bash -c "./scripts/run-cmake.sh && cd build && ./../scripts/sonar-scan.sh" + command: bash -c "./scripts/run-cmake.sh && cd build && ../scripts/sonar-scan.sh" python2: extends: base diff --git a/scripts/sonar-scan.sh b/scripts/sonar-scan.sh index 8a7fd97..f02d283 100755 --- a/scripts/sonar-scan.sh +++ b/scripts/sonar-scan.sh @@ -22,6 +22,12 @@ # docker-compose ones are: # - MRAA_SRC_DIR - path to mraa's git clone in the Docker container. +# Check required environment variables and exit if they are not set +MRAA_SRC_DIR=${MRAA_SRC_DIR:?value not provided} +SONAR_PROJ_KEY=${SONAR_PROJ_KEY:?value not provided} +SONAR_ORG=${SONAR_ORG:?value not provided} +SONAR_TOKEN=${SONAR_TOKEN:?value not provided} + bw_output_path="${MRAA_SRC_DIR}/build/bw-output" sonar_cmd_base="build-wrapper-linux-x86-64 --out-dir ${bw_output_path} make clean all && \ @@ -44,12 +50,14 @@ echo "TRAVIS_PULL_REQUEST: ${TRAVIS_PULL_REQUEST}" echo "TRAVIS_PULL_REQUEST_SLUG: ${TRAVIS_PULL_REQUEST_SLUG}" echo "TRAVIS_REPO_SLUG: ${TRAVIS_REPO_SLUG}" -if [ "${TRAVIS_BRANCH}" == "master" -a "${TRAVIS_PULL_REQUEST}" == "false" -a "${TRAVIS_REPO_SLUG}" == "intel-iot-devkit/mraa" ]; then +if [ "${TRAVIS_BRANCH}" == "master" -a "${TRAVIS_PULL_REQUEST}" == "false" ]; then # Master branch push - do a full-blown scan echo "Performing master branch push scan" sonar_cmd="${sonar_cmd_base}" elif [ "${TRAVIS_PULL_REQUEST}" != "false" -a "${TRAVIS_PULL_REQUEST_SLUG}" == "${TRAVIS_REPO_SLUG}" ]; then # Internal PR - do a preview scan with report to the PR + ${GITHUB_TOKEN:?value not provided} + echo "Performing internal pull request scan" sonar_cmd="${sonar_cmd_base} \ -Dsonar.analysis.mode=preview \