Merge pull request #6062 from hoisie/five-steps

Rebalance CircleCI to use 5 jobs instead of 6
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 1f88e2e..586c93e 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -5,7 +5,6 @@
     - image: circleci/openjdk:11.0.6-jdk-stretch
   resource_class: xlarge
   environment:
-    JVM_OPTS: -Xmx4096m
     GRADLE_MAX_PARALLEL_FORKS: 2
     ANDROID_HOME: /home/circleci/Android
 
@@ -135,7 +134,7 @@
           path: build/reports
           destination: reports
 
-  test_26_27:
+  test_26_27_28:
     << : *job_config
     steps:
       - attach_workspace:
@@ -143,15 +142,15 @@
       - restore_cache:
           key: cache-{{ checksum ".cache-hash" }}
       - run_tests_for_sdks:
-          codenames: O
-          versions: 26,27
+          codenames: O/P
+          versions: 26,27,28
       - store_test_results:
           path: ~/junit
       - store_artifacts:
           path: build/reports
           destination: reports
 
-  test_28_29:
+  test_29_30:
     << : *job_config
     steps:
       - attach_workspace:
@@ -159,24 +158,8 @@
       - restore_cache:
           key: cache-{{ checksum ".cache-hash" }}
       - run_tests_for_sdks:
-          codenames: P/Q
-          versions: 28,29
-      - store_test_results:
-          path: ~/junit
-      - store_artifacts:
-          path: build/reports
-          destination: reports
-
-  test_30:
-    << : *job_config
-    steps:
-      - attach_workspace:
-          at: ~/code
-      - restore_cache:
-          key: cache-{{ checksum ".cache-hash" }}
-      - run_tests_for_sdks:
-          codenames: R
-          versions: "30"
+          codenames: Q/R
+          versions: 29,30
       - store_test_results:
           path: ~/junit
       - store_artifacts:
@@ -211,13 +194,10 @@
       - test_23_24_25:
           requires:
             - build
-      - test_26_27:
+      - test_26_27_28:
           requires:
             - build
-      - test_28_29:
-          requires:
-            - build
-      - test_30:
+      - test_29_30:
           requires:
             - build
       - finish:
@@ -225,9 +205,8 @@
             - test_16_17_18
             - test_19_21_22
             - test_23_24_25
-            - test_26_27
-            - test_28_29
-            - test_30
+            - test_26_27_28
+            - test_29_30
   check-formatting:
     jobs:
       - check_java_formatting
diff --git a/buildSrc/src/main/groovy/org/robolectric/gradle/AndroidProjectConfigPlugin.groovy b/buildSrc/src/main/groovy/org/robolectric/gradle/AndroidProjectConfigPlugin.groovy
index 2187d91..bcc79e3 100644
--- a/buildSrc/src/main/groovy/org/robolectric/gradle/AndroidProjectConfigPlugin.groovy
+++ b/buildSrc/src/main/groovy/org/robolectric/gradle/AndroidProjectConfigPlugin.groovy
@@ -17,8 +17,8 @@
                 events = ["failed", "skipped"]
             }
 
-            minHeapSize = "1024m"
-            maxHeapSize = "4096m"
+            minHeapSize = "2048m"
+            maxHeapSize = "8192m"
 
             if (System.env['GRADLE_MAX_PARALLEL_FORKS'] != null) {
                 maxParallelForks = Integer.parseInt(System.env['GRADLE_MAX_PARALLEL_FORKS'])
@@ -27,7 +27,7 @@
             def forwardedSystemProperties = System.properties
                     .findAll { k,v -> k.startsWith("robolectric.") }
                     .collect { k,v -> "-D$k=$v" }
-            jvmArgs = ["-XX:MaxPermSize=1024m"] + forwardedSystemProperties
+            jvmArgs = forwardedSystemProperties
 
             doFirst {
                 if (!forwardedSystemProperties.isEmpty()) {
@@ -51,4 +51,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/buildSrc/src/main/groovy/org/robolectric/gradle/RoboJavaModulePlugin.groovy b/buildSrc/src/main/groovy/org/robolectric/gradle/RoboJavaModulePlugin.groovy
index 07880e2..94e6261 100644
--- a/buildSrc/src/main/groovy/org/robolectric/gradle/RoboJavaModulePlugin.groovy
+++ b/buildSrc/src/main/groovy/org/robolectric/gradle/RoboJavaModulePlugin.groovy
@@ -66,7 +66,7 @@
             }
 
             minHeapSize = "1024m"
-            maxHeapSize = "4096m"
+            maxHeapSize = "8192m"
 
             if (System.env['GRADLE_MAX_PARALLEL_FORKS'] != null) {
                 maxParallelForks = Integer.parseInt(System.env['GRADLE_MAX_PARALLEL_FORKS'])
@@ -75,7 +75,7 @@
             def forwardedSystemProperties = System.properties
                     .findAll { k,v -> k.startsWith("robolectric.") }
                     .collect { k,v -> "-D$k=$v" }
-            jvmArgs = ["-XX:MaxPermSize=1024m"] + forwardedSystemProperties
+            jvmArgs = forwardedSystemProperties
 
             doFirst {
                 if (!forwardedSystemProperties.isEmpty()) {
@@ -91,4 +91,4 @@
         doApply.resolveStrategy = Closure.DELEGATE_ONLY
         doApply()
     }
-}
\ No newline at end of file
+}