diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2015-11-24 17:42:32 +0100 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2015-11-24 17:42:44 +0100 |
commit | 76b953f99279d1d8eb7e737a4064e5afe4ca17d7 (patch) | |
tree | 47f43b4b0312d40847a000987a7e4b74595429d9 /travis.sh | |
parent | 6ded2a7f1de31e57f646c067a0fc829a3b0306f2 (diff) | |
download | sonarqube-76b953f99279d1d8eb7e737a4064e5afe4ca17d7.tar.gz sonarqube-76b953f99279d1d8eb7e737a4064e5afe4ca17d7.zip |
Improve travis.sh
- Upgrade to travis-utils v21
- Merge PR analysis with CI
- rename variables
- execute IT category "plugins" if PR from same repo
- fail if unknown $TARGET
Diffstat (limited to 'travis.sh')
-rwxr-xr-x | travis.sh | 87 |
1 files changed, 49 insertions, 38 deletions
diff --git a/travis.sh b/travis.sh index 59af62537aa..ecb548df478 100755 --- a/travis.sh +++ b/travis.sh @@ -4,14 +4,50 @@ set -euo pipefail function installTravisTools { mkdir ~/.local - curl -sSL https://github.com/SonarSource/travis-utils/tarball/v19 | tar zx --strip-components 1 -C ~/.local + curl -sSL https://github.com/SonarSource/travis-utils/tarball/v21 | tar zx --strip-components 1 -C ~/.local source ~/.local/bin/install } -case "$JOB" in +function strongEcho { + echo "" + echo "================ $1 =================" +} + +case "$TARGET" in + +CI) + if [ "$TRAVIS_PULL_REQUEST" != "false" ] && [ -n "$SONAR_GITHUB_OAUTH" ]; then + # For security reasons environment variables are not available on the pull requests + # coming from outside repositories + # http://docs.travis-ci.com/user/pull-requests/#Security-Restrictions-when-testing-Pull-Requests + # That's why the analysis does not need to be executed if the variable SONAR_GITHUB_OAUTH is not defined. + + strongEcho 'Build and analyze pull request' + # this pull request must be built and analyzed (without upload of report) + mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent verify -Pcoverage-per-test,analysis -Dclirr=true -Dmaven.test.redirectTestOutputToFile=false -B -e -V -H2) - mvn verify -B -e -V + # Switch to java 8 as the Dory HTTPS certificate is not supported by Java 7 + export JAVA_HOME=/usr/lib/jvm/java-8-oracle + export PATH=$JAVA_HOME/bin:$PATH + + mvn sonar:sonar -B -e -V \ + -Dsonar.analysis.mode=issues \ + -Dsonar.github.pullRequest=$TRAVIS_PULL_REQUEST \ + -Dsonar.github.repository=$TRAVIS_REPO_SLUG \ + -Dsonar.github.oauth=$SONAR_GITHUB_OAUTH \ + -Dsonar.host.url=$SONAR_HOST_URL \ + -Dsonar.login=$SONAR_LOGIN \ + -Dsonar.password=$SONAR_PASSWORD + + + else + strongEcho 'Build, no analysis' + # Build branch, without any analysis + + # No need for Maven goal "install" as the generated JAR file does not need to be installed + # in Maven local repository + mvn verify -Dmaven.test.redirectTestOutputToFile=false -B -e -V + fi ;; POSTGRES) @@ -34,44 +70,14 @@ MYSQL) ;; WEB) -set +eu + set +eu source ~/.nvm/nvm.sh && nvm install 4 cd server/sonar-web && npm install && npm test ;; -PULL_REQUEST_ANALYSIS) - if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then - - # For security reasons environment variables are not available on the pull requests - # coming from outside repositories - # http://docs.travis-ci.com/user/pull-requests/#Security-Restrictions-when-testing-Pull-Requests - if [ -n "$SONAR_GITHUB_OAUTH" ]; then - - # Switch to java 8 as the Dory HTTPS certificate is not supported by Java 7 - export JAVA_HOME=/usr/lib/jvm/java-8-oracle - export PATH=$JAVA_HOME/bin:$PATH - - echo "Analyze pull request" - mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent verify sonar:sonar -B -e -V -Panalysis \ - -Dmaven.test.failure.ignore=true \ - -Dclirr=true \ - -Dsonar.analysis.mode=issues \ - -Dsonar.github.pullRequest=$TRAVIS_PULL_REQUEST \ - -Dsonar.github.repository=$TRAVIS_REPO_SLUG \ - -Dsonar.github.login=$SONAR_GITHUB_LOGIN \ - -Dsonar.github.oauth=$SONAR_GITHUB_OAUTH \ - -Dsonar.host.url=$SONAR_HOST_URL \ - -Dsonar.login=$SONAR_LOGIN \ - -Dsonar.password=$SONAR_PASSWORD - else - echo "Pull requests are not analyzed when coming from outside repositories" - fi - fi - ;; - -ITS) - if [ "$IT_CATEGORY" == "Plugins" ] && [ "$TRAVIS_PULL_REQUEST" != "false" ]; then - echo "Ignore this job since it needs access to private test licenses." +IT) + if [ "$IT_CATEGORY" == "Plugins" ] && [ -n "$SONAR_GITHUB_OAUTH" ]; then + echo "This job is ignored as it needs to access a private GitHub repository" else installTravisTools @@ -81,4 +87,9 @@ ITS) fi ;; +*) + echo "Unexpected TARGET value: $TARGET" + exit 1 + ;; + esac |