Bug 1291370 - Add Fennec-and-GeckoView Task Cluster job building using --with-gradle. r=dustin,gbrown
authorNick Alexander <nalexander@mozilla.com>
Wed, 03 Aug 2016 16:02:00 -0700
changeset 308013 bade2af0597b172cba28fd2c7322a0cd56eff651
parent 308012 69b0f784a9a21369d3aba9c467c953dce81b1e59
child 308014 757b6fae6d6b0e882d3c1f0ea94ade2902918c19
push id30527
push usercbook@mozilla.com
push dateThu, 04 Aug 2016 13:55:03 +0000
treeherdermozilla-central@0e51d95ded87 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdustin, gbrown
bugs1291370
milestone51.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1291370 - Add Fennec-and-GeckoView Task Cluster job building using --with-gradle. r=dustin,gbrown We run only a small subset of the test suite to save resources. Over time, we'll run more of the platform test suite.
mobile/android/config/mozconfigs/android-api-15-gradle/nightly
taskcluster/ci/android-test/test-platforms.yml
taskcluster/ci/android-test/test-sets.yml
taskcluster/ci/android-test/tests.yml
taskcluster/ci/legacy/tasks/branches/base_job_flags.yml
taskcluster/ci/legacy/tasks/branches/base_jobs.yml
taskcluster/ci/legacy/tasks/builds/android_api_15_gradle.yml
testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15-gradle/nightly
@@ -0,0 +1,23 @@
+. "$topsrcdir/mobile/android/config/mozconfigs/common"
+
+ac_add_options --enable-profiling
+
+# Android
+ac_add_options --with-android-min-sdk=15
+ac_add_options --target=arm-linux-androideabi
+
+ac_add_options --with-branding=mobile/android/branding/nightly
+
+ac_add_options --with-gradle="$topsrcdir/gradle/bin/gradle"
+export GRADLE_MAVEN_REPOSITORY="file://$topsrcdir/jcentral"
+
+# From here on, just like ../android-api-15/nightly.
+
+# This will overwrite the default of stripping everything and keep the symbol table.
+# This is useful for profiling with eideticker. See bug 788680
+STRIP_FLAGS="--strip-debug"
+
+export MOZILLA_OFFICIAL=1
+export MOZ_TELEMETRY_REPORTING=1
+
+. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
--- a/taskcluster/ci/android-test/test-platforms.yml
+++ b/taskcluster/ci/android-test/test-platforms.yml
@@ -15,8 +15,11 @@ android-4.3-arm7-api-15/debug:
     build-platform: android-api-15/debug
     test-set: debug-tests
 android-4.3-arm7-api-15/opt:
     build-platform: android-api-15/opt
     test-set: opt-tests
 android-4.2-x86/opt:
     build-platform: android-x86/opt
     test-set: x86-tests
+android-4.3-arm7-api-15-gradle/opt:
+    build-platform: android-api-15-gradle/opt
+    test-set: gradle-tests
--- a/taskcluster/ci/android-test/test-sets.yml
+++ b/taskcluster/ci/android-test/test-sets.yml
@@ -31,10 +31,14 @@ opt-tests:
     - mochitest-clipboard
     - mochitest-gpu
     - mochitest-media
     - mochitest-webgl
     - reftest
     - robocop
     - xpcshell
 
+gradle-tests:
+    - robocop
+    - mochitest-chrome
+
 x86-tests:
     - xpcshell
--- a/taskcluster/ci/android-test/tests.yml
+++ b/taskcluster/ci/android-test/tests.yml
@@ -28,17 +28,17 @@ cppunit:
 crashtest:
     description: "Crashtest run"
     suite: crashtest
     treeherder-symbol: tc-R(C)
     instance-size: xlarge
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 10
-            android-4.3-arm7-api-15/opt: 4
+            default: 4
     loopback-video: true
     e10s: false
     mozharness:
         script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
             - mozharness/configs/android/androidarm_4_3.py
             - mozharness/configs/remove_executables.py
@@ -49,17 +49,17 @@ crashtest:
 jsreftest:
     description: "JS Reftest run"
     suite: reftest/jsreftest
     treeherder-symbol: tc-R(J)
     instance-size: xlarge
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 20
-            android-4.3-arm7-api-15/opt: 6
+            default: 6
     loopback-video: true
     max-run-time: 7200
     e10s: false
     mozharness:
         script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
             - mozharness/configs/android/androidarm_4_3.py
@@ -74,17 +74,17 @@ mochitest:
     treeherder-symbol: tc-M()
     instance-size: xlarge
     chunks: 20
     loopback-video: true
     e10s: false
     max-run-time:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 10800
-            android-4.3-arm7-api-15/opt: 3600
+            default: 3600
     mozharness:
         script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
             - mozharness/configs/android/androidarm_4_3.py
             - mozharness/configs/remove_executables.py
             - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
@@ -93,17 +93,17 @@ mochitest:
 mochitest-chrome:
     description: "Mochitest chrome run"
     suite: mochitest/chrome
     treeherder-symbol: tc-M(c)
     instance-size: xlarge
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 2
-            android-4.3-arm7-api-15/opt: 1
+            default: 1
     loopback-video: true
     e10s: false
     max-run-time: 5400
     mozharness:
         script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
             - mozharness/configs/android/androidarm_4_3.py
@@ -151,17 +151,17 @@ mochitest-media:
     treeherder-symbol: tc-M(mda)
     instance-size: xlarge
     chunks: 2
     loopback-video: true
     e10s: false
     max-run-time:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 5400
-            android-4.3-arm7-api-15/opt: 3600
+            default: 3600
     mozharness:
         script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
             - mozharness/configs/android/androidarm_4_3.py
             - mozharness/configs/remove_executables.py
             - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
@@ -173,16 +173,17 @@ mochitest-webgl:
     treeherder-symbol: tc-M(gl)
     chunks: 10
     loopback-video: true
     e10s: false
     max-run-time: 7200
     instance-size:
         by-test-platform:
             android-4.3-arm7-api-15/opt: default
+            android-4.3-arm7-api-15-gradle/opt: default
             android-4.3-arm7-api-15/debug: xlarge
     mozharness:
         script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
             - mozharness/configs/android/androidarm_4_3.py
             - mozharness/configs/remove_executables.py
             - mozharness/configs/android/androidarm_4_3-tc.py
@@ -191,17 +192,17 @@ mochitest-webgl:
 
 reftest:
     description: "Reftest run"
     suite: reftest/reftest
     treeherder-symbol: tc-R(R)
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 48
-            android-4.3-arm7-api-15/opt: 16
+            default: 16
     instance-size: xlarge
     max-run-time: 10800
     loopback-video: true
     e10s: false
     mozharness:
         script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
@@ -215,16 +216,17 @@ robocop:
     description: "Robocop run"
     suite: robocop
     treeherder-symbol: tc-M(rc)
     instance-size: xlarge
     chunks:
         by-test-platform:
             # android-4.3-arm7-api-15/debug -- not run
             android-4.3-arm7-api-15/opt: 4
+            android-4.3-arm7-api-15-gradle/opt: 4
     loopback-video: true
     e10s: false
     mozharness:
         script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
             - mozharness/configs/android/androidarm_4_3.py
             - mozharness/configs/remove_executables.py
--- a/taskcluster/ci/legacy/tasks/branches/base_job_flags.yml
+++ b/taskcluster/ci/legacy/tasks/branches/base_job_flags.yml
@@ -9,16 +9,17 @@ flags:
     - linux64-haz    # Firefox desktop browser, rooting hazard analysis
     - linux64-shell-haz  # JS shell, rooting hazard analysis
     - linux64-mulet-haz  # Firefox desktop - b2g gecko linux 64 bit, rooting hazard analysis
     - macosx64_gecko # b2g desktop osx 64 bit
     - win32_gecko    # b2g desktop win 32 bit
     - nexus-5l-eng
     - aries-eng
     - android-api-15
+    - android-api-15-gradle
     - android-api-15-frontend
     - android-partner-sample1
     - android-x86
     - linux
     - linux-l10n    # Desktop l10n
     - linux64
     - linux64-l10n  # Desktop l10n
     - linux64-st-an
--- a/taskcluster/ci/legacy/tasks/branches/base_jobs.yml
+++ b/taskcluster/ci/legacy/tasks/branches/base_jobs.yml
@@ -15,16 +15,22 @@ builds:
       debug:
         task: tasks/builds/android_api_15_debug.yml
   android-x86:
     platforms:
       - Android
     types:
       opt:
         task: tasks/builds/android_x86.yml
+  android-api-15-gradle:
+    platforms:
+      - Android
+    types:
+      opt:
+        task: tasks/builds/android_api_15_gradle.yml
   linux64-mulet:
     platforms:
       - Mulet Linux
     types:
       opt:
         task: tasks/builds/mulet_linux.yml
       debug:
         task: tasks/builds/mulet_linux_dbg.yml
new file mode 100644
--- /dev/null
+++ b/taskcluster/ci/legacy/tasks/builds/android_api_15_gradle.yml
@@ -0,0 +1,64 @@
+$inherits:
+  from: 'tasks/builds/mobile_base.yml'
+  variables:
+    build_name: 'android-api-15-gradle'
+    build_type: 'opt'
+task:
+  metadata:
+      name: '[TC] Android armv7 API 15+ Gradle'
+      description: 'Android armv7 API 15+ Gradle'
+
+  workerType: android-api-15
+
+  routes:
+    - 'index.buildbot.branches.{{project}}.android-api-15-gradle'
+    - 'index.buildbot.revisions.{{head_rev}}.{{project}}.android-api-15-gradle'
+
+  scopes:
+    - 'docker-worker:cache:level-{{level}}-{{project}}-build-android-api-15-gradle-workspace'
+    - 'docker-worker:cache:tooltool-cache'
+    - 'docker-worker:relengapi-proxy:tooltool.download.internal'
+    - 'docker-worker:relengapi-proxy:tooltool.download.public'
+
+  payload:
+    cache:
+      level-{{level}}-{{project}}-build-android-api-15-gradle-workspace: '/home/worker/workspace'
+      tooltool-cache: '/home/worker/tooltool-cache'
+
+    features:
+      relengAPIProxy: true
+
+    env:
+      # inputs to mozharness
+      MOZHARNESS_SCRIPT: 'mozharness/scripts/fx_desktop_build.py'
+      # TODO: make these additional configuration files go away
+      MOZHARNESS_CONFIG: >
+          builds/releng_base_android_64_builds.py
+          disable_signing.py
+          platform_supports_post_upload_to_latest.py
+      MOZHARNESS_ACTIONS: "get-secrets build multi-l10n update"
+      MH_CUSTOM_BUILD_VARIANT_CFG: api-15-gradle
+      MH_BRANCH: {{project}}
+      MH_BUILD_POOL: taskcluster
+
+    command: ["/bin/bash", "bin/build.sh"]
+
+  extra:
+    treeherderEnv:
+      - production
+      - staging
+    treeherder:
+      machine:
+        # see https://github.com/mozilla/treeherder/blob/master/ui/js/values.js
+        platform: android-4-0-armv7-api15
+      groupSymbol: tc
+      groupName: Submitted by taskcluster
+      symbol: B
+      tier: 2
+    # Rather then enforcing particular conventions we require that all build
+    # tasks provide the "build" extra field to specify where the build and tests
+    # files are located.
+    locations:
+      build: 'public/build/target.apk'
+      mozharness: 'public/build/mozharness.zip'
+      test_packages: 'public/build/target.test_packages.json'
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle.py
@@ -0,0 +1,8 @@
+config = {
+    'base_name': 'Android armv7 API 15+ %(branch)s Gradle',
+    'stage_platform': 'android-api-15-gradle',
+    'build_type': 'api-15-gradle',
+    'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15-gradle/nightly',
+    'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+    'multi_locale_config_platform': 'android',
+}
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -355,16 +355,17 @@ class BuildOptionParser(object):
         'mulet': 'builds/releng_sub_%s_configs/%s_mulet.py',
         'code-coverage': 'builds/releng_sub_%s_configs/%s_code_coverage.py',
         'graphene': 'builds/releng_sub_%s_configs/%s_graphene.py',
         'horizon': 'builds/releng_sub_%s_configs/%s_horizon.py',
         'source': 'builds/releng_sub_%s_configs/%s_source.py',
         'api-15-gradle-dependencies': 'builds/releng_sub_%s_configs/%s_api_15_gradle_dependencies.py',
         'api-15': 'builds/releng_sub_%s_configs/%s_api_15.py',
         'api-15-debug': 'builds/releng_sub_%s_configs/%s_api_15_debug.py',
+        'api-15-gradle': 'builds/releng_sub_%s_configs/%s_api_15_gradle.py',
         'x86': 'builds/releng_sub_%s_configs/%s_x86.py',
         'api-15-partner-sample1': 'builds/releng_sub_%s_configs/%s_api_15_partner_sample1.py',
         'android-test': 'builds/releng_sub_%s_configs/%s_test.py',
         'android-checkstyle': 'builds/releng_sub_%s_configs/%s_checkstyle.py',
         'android-lint': 'builds/releng_sub_%s_configs/%s_lint.py',
         'valgrind' : 'builds/releng_sub_%s_configs/%s_valgrind.py'
     }
     build_pool_cfg_file = 'builds/build_pool_specifics.py'