Bug 1119520 - Add job building Fennec with --disable-compile-environment. r?dustin draft
authorNick Alexander <nalexander@mozilla.com>
Mon, 11 Jan 2016 18:14:31 -0800
changeset 320645 9c3ea8d81482bb7e1a9a71afec6675c7eb5a3bb9
parent 320644 ef241d8ed549d32a3d10fb83f622debccf7bc048
child 320646 37eefe9ae0ede023f8ad485dd6c8d6a2f071aee3
child 320647 abfcaf51d9a050849986f7700fbf32720245814b
push id9258
push usernalexander@mozilla.com
push dateTue, 12 Jan 2016 02:19:14 +0000
reviewersdustin
bugs1119520
milestone46.0a1
Bug 1119520 - Add job building Fennec with --disable-compile-environment. r?dustin I have no particular attachment to anything here other than using a stripped down manifest that does not include the NDK toolchain. This is grade A cargo cult, with extra cult followers.
mobile/android/config/mozconfigs/android-api-11-frontend/nightly
mobile/android/config/tooltool-manifests/android-frontend/releng.manifest
testing/mozharness/configs/builds/releng_sub_android_configs/64_api_11_frontend.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
testing/taskcluster/tasks/branches/base_job_flags.yml
testing/taskcluster/tasks/branches/base_jobs.yml
testing/taskcluster/tasks/branches/try/job_flags.yml
testing/taskcluster/tasks/builds/android_api_11_frontend.yml
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-11-frontend/nightly
@@ -0,0 +1,37 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_INSTALLER=0
+MOZ_AUTOMATION_L10N_CHECK=0
+MOZ_AUTOMATION_PACKAGE=0
+MOZ_AUTOMATION_PACKAGE_TESTS=0
+MOZ_AUTOMATION_SDK=0
+MOZ_AUTOMATION_UPDATE_PACKAGING=0
+MOZ_AUTOMATION_UPLOAD=0
+MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
+
+. "$topsrcdir/mobile/android/config/mozconfigs/common"
+
+ac_add_options --enable-building-mobile-android-with-gradle
+
+ac_add_options --disable-compile-environment
+ac_add_options --disable-tests 
+
+# From here on, like ../android-api-11/nightly.
+
+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
+
+# 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
+
+MOZ_ANDROID_GECKOLIBS_AAR=1
+
+. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/tooltool-manifests/android-frontend/releng.manifest
@@ -0,0 +1,42 @@
+[
+{
+"size": 535625068,
+"visibility": "internal", 
+"digest": "0627515046a23c1d109e2782865b1b3b546c1d552955e4156317f76cbb195eb630aa25feea3f4edd1c685f129da0c2a5169d4d6349c1c31d8a95158a4569a478",
+"algorithm": "sha512",
+"filename": "android-sdk-linux.tar.xz",
+"unpack": true
+},
+{
+"size": 167175,
+"visibility": "public",
+"digest": "0b71a936edf5bd70cf274aaa5d7abc8f77fe8e7b5593a208f805cc9436fac646b9c4f0b43c2b10de63ff3da671497d35536077ecbc72dba7f8159a38b580f831",
+"algorithm": "sha512",
+"filename": "sccache.tar.bz2",
+"unpack": true
+},
+{
+"size": 31013068,
+"visibility": "public",
+"digest": "e30a26f98a3448064857491aee1a7a26f98494f86a89113de9be17c37c8181ed60250706fed881ec1f035002fcdaf8b9b4a7d9ae70ce40acff2f1acfbb40f8d9",
+"algorithm": "sha512",
+"filename": "java_home-1.7.0-openjdk-1.7.0.85.x86_64.tar.xz",
+"unpack": true
+},
+{
+"size": 49891320,
+"visibility": "public",
+"digest": "9cef783d9962cc99f5bb13bb28d18ced45b2c7377d24c1f169867735aa38aa25795a4ac87972f6bd9cd23178b2c5af991d9dbbd8062d0bc59c8bcb2dc5eb7bcc",
+"algorithm": "sha512",
+"filename": "gradle-2.7-all.tar.xz",
+"unpack": true
+}, 
+{
+"size": 34518596, 
+"visibility": "public", 
+"digest": "5830f0ceb1eef18bd9cb1702decf38b9432e181e5e7526233cc2fb3c02cdc5ae4405ffa02769b7785658555b31ebd26f46fa309a5831896a7d1950dea4d0483a", 
+"algorithm": "sha512", 
+"filename": "maven-central.tar.xz",
+"unpack": true
+}
+]
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_11_frontend.py
@@ -0,0 +1,8 @@
+config = {
+    'base_name': 'Android armv7 API 11+ frontend %(branch)s',
+    'stage_platform': 'android-api-11-frontend',
+    'build_type': 'api-11-opt',
+    'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-11-frontend/nightly',
+    'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android-frontend/releng.manifest',
+    'multi_locale_config_platform': 'android',
+}
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -352,16 +352,17 @@ class BuildOptionParser(object):
         'stat-and-debug': 'builds/releng_sub_%s_configs/%s_stat_and_debug.py',
         '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-9': 'builds/releng_sub_%s_configs/%s_api_9.py',
         'api-11': 'builds/releng_sub_%s_configs/%s_api_11.py',
+        'api-11-frontend': 'builds/releng_sub_%s_configs/%s_api_11_frontend.py',
         'api-9-debug': 'builds/releng_sub_%s_configs/%s_api_9_debug.py',
         'api-11-debug': 'builds/releng_sub_%s_configs/%s_api_11_debug.py',
         'x86': 'builds/releng_sub_%s_configs/%s_x86.py',
         'api-11-partner-sample1': 'builds/releng_sub_%s_configs/%s_api_11_partner_sample1.py',
         'api-11-b2gdroid': 'builds/releng_sub_%s_configs/%s_api_11_b2gdroid.py',
     }
     build_pool_cfg_file = 'builds/build_pool_specifics.py'
     branch_cfg_file = 'builds/branch_specifics.py'
--- a/testing/taskcluster/tasks/branches/base_job_flags.yml
+++ b/testing/taskcluster/tasks/branches/base_job_flags.yml
@@ -93,16 +93,17 @@ flags:
     - dolphin-512
     - dolphin-512-eng
     - aries
     - aries-ota
     - aries-eng
     - aries-dogfood
     - aries-noril
     - android-api-11
+    - android-api-frontend
     - android-partner-sample1
     - android-b2gdroid
     - linux
     - linux64
     - linux64-st-an
     - macosx64
     - macosx64-st-an
 
--- a/testing/taskcluster/tasks/branches/base_jobs.yml
+++ b/testing/taskcluster/tasks/branches/base_jobs.yml
@@ -171,16 +171,22 @@ builds:
       opt:
         task: tasks/builds/opt_macosx64_st-an.yml
   android-b2gdroid:
     platforms:
       - Android
     types:
       opt:
         task: tasks/builds/android_api_11_b2gdroid.yml
+  android-api-11-frontend:
+    platforms:
+      - Android
+    types:
+      opt:
+        task: tasks/builds/android_api_11_frontend.yml
 
 tests:
   cppunit:
     allowed_build_tasks:
       tasks/builds/b2g_emulator_x86_kk_opt.yml:
         task: tasks/tests/b2g_emulator_cpp_unit.yml
       tasks/builds/b2g_emulator_x86_kk_debug.yml:
         task: tasks/tests/b2g_emulator_cpp_unit.yml
--- a/testing/taskcluster/tasks/branches/try/job_flags.yml
+++ b/testing/taskcluster/tasks/branches/try/job_flags.yml
@@ -42,16 +42,22 @@ builds:
       opt:
         task: tasks/builds/b2g_dolphin_512_eng.yml
   android-api-11:
     platforms:
       - Android
     types:
       opt:
         task: tasks/builds/android_api_11.yml
+  android-api-11-frontend:
+    platforms:
+      - Android
+    types:
+      opt:
+        task: tasks/builds/android_api_11_frontend.yml
   android-partner-sample1:
     platforms:
       - Android
     types:
       opt:
         task: tasks/builds/android_api_11_partner_sample1.yml
   linux:
     platforms:
new file mode 100644
--- /dev/null
+++ b/testing/taskcluster/tasks/builds/android_api_11_frontend.yml
@@ -0,0 +1,65 @@
+$inherits:
+  from: 'tasks/builds/mobile_base.yml'
+  variables:
+    build_name: 'android'
+    build_type: 'opt'
+task:
+  metadata:
+      name: '[TC] Android armv7 API 11+ frontend'
+      description: 'Android armv7 API 11+ frontend'
+
+  workerType: android-api-11
+
+  routes:
+    - 'index.buildbot.branches.{{project}}.android-api-11-frontend'
+    - 'index.buildbot.revisions.{{head_rev}}.{{project}}.android-api-11-frontend'
+
+  scopes:
+    - 'docker-worker:cache:build-{{project}}-android-api-11-c6-workspace'
+    - 'docker-worker:cache:tooltool-cache'
+    - 'docker-worker:relengapi-proxy:tooltool.download.internal'
+    - 'docker-worker:relengapi-proxy:tooltool.download.public'
+
+  payload:
+    image: '{{#docker_image}}desktop-build{{/docker_image}}'
+    cache:
+      build-{{project}}-android-api-11-c6-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
+      MH_CUSTOM_BUILD_VARIANT_CFG: api-11-frontend
+      MH_BRANCH: {{project}}
+      MH_BUILD_POOL: taskcluster
+
+    maxRunTime: 36000
+
+    command:
+      - bash
+      - -cx
+      - >
+          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-api11
+    # 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.linux-x86_64.tar.bz2'
+      tests: 'public/build/target.tests.zip'