| # More details on how to configure the Travis build |
| # https://docs.travis-ci.com/user/customizing-the-build/ |
| |
| # Speed up build by leveraging travis caches |
| cache: |
| directories: |
| - $HOME/.gradle/caches/ |
| - $HOME/.gradle/wrapper/ |
| |
| # Enabling container based infrastructure hoping it will help the build speed <= this didn't work well, so it's reverted |
| # see https://docs.travis-ci.com/user/migrating-from-legacy/ and https://docs.travis-ci.com/user/ci-environment |
| sudo: true |
| |
| language: java |
| |
| matrix: |
| include: |
| - jdk: oraclejdk8 |
| - jdk: oraclejdk8 |
| env: SKIP_RELEASE=true MOCK_MAKER=mock-maker-inline |
| - jdk: oraclejdk9 |
| env: SKIP_RELEASE=true |
| - jdk: oraclejdk9 |
| env: SKIP_RELEASE=true MOCK_MAKER=mock-maker-inline |
| |
| branches: |
| #Don't build tags |
| except: |
| - /^v\d/ |
| |
| #Below skips the installation step completely (https://docs.travis-ci.com/user/customizing-the-build/#Skipping-the-Installation-Step) |
| #We need it because otherwise Travis CI injects an awkward './gradlew assemble' step into the CI workflow |
| #We want to control and decide what Gradle tasks are executed |
| install: |
| - true |
| |
| script: |
| # We are using && below on purpose |
| # ciPerformRelease must run only when the entire build has completed |
| # This guarantees that no release steps are executed when the build or tests fail |
| - ./gradlew build idea -s -PcheckJava6Compatibility && ./gradlew ciPerformRelease |
| |
| after_success: |
| #Generates coverage report: |
| - ./gradlew --stacktrace coverageReport && cp build/reports/jacoco/mockitoCoverage/mockitoCoverage.xml jacoco.xml || echo "Code coverage failed" |
| - bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports" |