From 6be7a1a8a2bcb6ede884dd05c4cf6309c547e08b Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Mon, 21 May 2018 16:59:40 -0500 Subject: [PATCH] Have Travis CI periodically try to build each subproject separately If Gradle dependencies are set up correctly, then it should be possible to build any subproject starting with a pristine tree. These take too long to use for every commit, pull request, etc. But running an extensive test like this periodically (e.g., weekly) seems reasonable. --- .travis.yml | 252 ++++++++++++++++++++++++++++++++++++++++++ travis/install-gradle | 4 +- travis/script-gradle | 5 +- 3 files changed, 259 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4a3fa5173..cee184deb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,3 +38,255 @@ matrix: - os: osx env: BUILD_SYSTEM=gradle language: java + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.java + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.java.ecj + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.java.test + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.java.test.data + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.html.nu_validator + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.nodejs + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.nodejs.test + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.rhino + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.rhino.test + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.test + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.test.data + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.test + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.core + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.core.testdata + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.core.tests + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.dalvik + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.dalvik.test + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide.jdt + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide.jdt.test + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide.jsdt + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide.jsdt.tests + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide.tests + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.scandroid + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.shrike + language: java + jdk: oraclejdk8 + if: type = cron + - os: linux + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.util + language: java + jdk: oraclejdk8 + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.java + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.java.ecj + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.java.test + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.java.test.data + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.html.nu_validator + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.nodejs + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.nodejs.test + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.rhino + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.rhino.test + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.test + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.js.test.data + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.cast.test + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.core + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.core.testdata + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.core.tests + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.dalvik + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.dalvik.test + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide.jdt + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide.jdt.test + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide.jsdt + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide.jsdt.tests + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.ide.tests + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.scandroid + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.shrike + language: java + if: type = cron + - os: osx + env: BUILD_SYSTEM=gradle BUILD_ONLY_SUBMODULE=com.ibm.wala.util + language: java + if: type = cron diff --git a/travis/install-gradle b/travis/install-gradle index 9bb7d2ab2..79d435352 100644 --- a/travis/install-gradle +++ b/travis/install-gradle @@ -3,4 +3,6 @@ # initial p2AsMaven downloads are sometimes slow travis_wait 30 ./gradlew --dry-run -./gradlew --continue --no-build-cache assemble +submodule=${BUILD_ONLY_SUBMODULE:+:$BUILD_ONLY_SUBMODULE:} + +./gradlew --continue --no-build-cache "$submodule"assemble diff --git a/travis/script-gradle b/travis/script-gradle index 6aa02f8eb..cdba70407 100644 --- a/travis/script-gradle +++ b/travis/script-gradle @@ -5,4 +5,7 @@ case "$TRAVIS_OS_NAME" in (osx) headless='' ;; esac -$headless ./gradlew --continue --no-build-cache --stacktrace build javadoc lintGradle +$headless ./gradlew --continue --no-build-cache --stacktrace \ + "$submodule"build \ + "$submodule"javadoc \ + lintGradle