From ad60605fe8be7ab348c66bb7af637d7b752d12d4 Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Tue, 19 Dec 2017 10:56:41 -0600 Subject: [PATCH] In Travis-CI, test Maven and Gradle separately and concurrently This should help identify cases where the Gradle build only works if it runs before or after a Maven build. It will also help us recognize any Maven regressions accidentally introduced by our Gradle work. --- .travis.yml | 24 ++++++++++-------------- travis/before-cache-gradle | 7 +++++++ travis/before-cache-maven | 0 travis/before-install-gradle | 0 travis/before-install-maven | 9 +++++++++ travis/install-gradle | 3 +++ travis/install-maven | 3 +++ travis/script-gradle | 3 +++ travis/script-maven | 7 +++++++ 9 files changed, 42 insertions(+), 14 deletions(-) create mode 100644 travis/before-cache-gradle create mode 100644 travis/before-cache-maven create mode 100644 travis/before-install-gradle create mode 100644 travis/before-install-maven create mode 100644 travis/install-gradle create mode 100644 travis/install-maven create mode 100644 travis/script-gradle create mode 100644 travis/script-maven diff --git a/.travis.yml b/.travis.yml index 9e6756698..2d57f3d48 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +sudo: false language: android android: components: @@ -11,22 +12,14 @@ addons: before_install: - echo $ANDROID_HOME - git clone --depth=1 https://github.com/secure-software-engineering/DroidBench.git /tmp/DroidBench -- export M2_HOME=$HOME/apache-maven-3.5.0 -- if [ ! -d $M2_HOME/bin ]; then curl https://archive.apache.org/dist/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz | tar zxf - -C $HOME; fi -- export PATH=$M2_HOME/bin:$PATH -install: -- mvn clean verify -DskipTests=true -B -q -- ./gradlew compileJava -script: -- xvfb ./gradlew build -- xvfb-run mvn clean install -B -q -- bash ./dependent-projects-trigger.sh $AUTH_TOKEN -- mvn javadoc:aggregate -B -q -- bash ./upload-javascript.sh $GH_TOKEN -- ./build-maven-jars.py "install -Dgpg.skip" -sudo: false +- source "travis/before-install-$BUILD_SYSTEM" +install: source "travis/install-$BUILD_SYSTEM" +script: source "travis/script-$BUILD_SYSTEM" +before_cache: source "travis/before-cache-$BUILD_SYSTEM" cache: directories: + - "$HOME/.gradle/caches" + - "$HOME/.gradle/wrapper" - "$HOME/.m2" - "$HOME/apache-maven-3.5.0" - "$TRAVIS_BUILD_DIR/com.ibm.wala.core.testdata/ocaml/ocamljava-2.0-alpha1/lib" @@ -34,3 +27,6 @@ env: global: - secure: KcugjQYnBqeZ7XenZD5QY7jhekVPO0QpQyjDUteLytaokhyRK2g6eNvr/pPerN2uWUvsPwO18P9F+oOupge1cpPZf4cEY8RzLIromyUoRWd6JA0SKciUYdN2kSqnC4uZSJGXeGLoroyEEL4Q2sqimpkbIGxgxYtVniWgJULOyR4= - secure: jacvGPYX4ugG/HgwJEEpWnllWsS/ipX+qRJ7qM5mbDYryeqsz0eiaxBxQ6IpDyj0v6O4DUi74lSQs/UxCWcUxvOn/5AweCZfoF1U8vt1xivanR4MbC2kr6rJ6ohICuJ4PHDS4IffncgaP3Y8cfExHq6+d0tbibYkjRIiMUGpSik= + matrix: + - BUILD_SYSTEM=gradle + - BUILD_SYSTEM=maven diff --git a/travis/before-cache-gradle b/travis/before-cache-gradle new file mode 100644 index 000000000..01e6e296c --- /dev/null +++ b/travis/before-cache-gradle @@ -0,0 +1,7 @@ +# -*- mode: sh; sh-shell: sh -*- + +caches="$HOME/.gradle/caches" + +rm --force --recursive \ + "$caches/modules-2/modules-2.lock" \ + "$caches"/*/plugin-resolution diff --git a/travis/before-cache-maven b/travis/before-cache-maven new file mode 100644 index 000000000..e69de29bb diff --git a/travis/before-install-gradle b/travis/before-install-gradle new file mode 100644 index 000000000..e69de29bb diff --git a/travis/before-install-maven b/travis/before-install-maven new file mode 100644 index 000000000..e235bc375 --- /dev/null +++ b/travis/before-install-maven @@ -0,0 +1,9 @@ +# -*- mode: sh; sh-shell: sh -*- + +export M2_HOME=$HOME/apache-maven-3.5.0 + +if [ ! -d $M2_HOME/bin ]; then + curl https://archive.apache.org/dist/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz | tar zxf - -C $HOME +fi + +export PATH=$M2_HOME/bin:$PATH diff --git a/travis/install-gradle b/travis/install-gradle new file mode 100644 index 000000000..561c10eaf --- /dev/null +++ b/travis/install-gradle @@ -0,0 +1,3 @@ +# -*- mode: sh; sh-shell: sh -*- + +./gradlew assemble diff --git a/travis/install-maven b/travis/install-maven new file mode 100644 index 000000000..5977652b0 --- /dev/null +++ b/travis/install-maven @@ -0,0 +1,3 @@ +# -*- mode: sh; sh-shell: sh -*- + +mvn clean verify -DskipTests=true -B -q diff --git a/travis/script-gradle b/travis/script-gradle new file mode 100644 index 000000000..2d534e9b2 --- /dev/null +++ b/travis/script-gradle @@ -0,0 +1,3 @@ +# -*- mode: sh; sh-shell: sh -*- + +xvfb-run ./gradlew check javadoc diff --git a/travis/script-maven b/travis/script-maven new file mode 100644 index 000000000..42bc4ed94 --- /dev/null +++ b/travis/script-maven @@ -0,0 +1,7 @@ +# -*- mode: sh; sh-shell: sh -*- + +xvfb-run mvn clean install -B -q +bash ./dependent-projects-trigger.sh "$AUTH_TOKEN" +mvn javadoc:aggregate -B -q +bash ./upload-javascript.sh "$GH_TOKEN" +./build-maven-jars.py "install -Dgpg.skip"