Bug 1291370 - Add Fennec-and-GeckoView Task Cluster job building using --with-gradle. r?dustin
MozReview-Commit-ID: L2FNyk1cF3k
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/mobile/android/config/mozconfigs/common
+++ b/mobile/android/config/mozconfigs/common
@@ -39,17 +39,16 @@ ANDROID_NDK_VERSION_32BIT="r8c"
ac_add_options --enable-application=mobile/android
ac_add_options --with-android-sdk="$topsrcdir/android-sdk-linux"
if [ -z "$NO_NDK" ]; then
ac_add_options --with-android-ndk="$topsrcdir/android-ndk"
ac_add_options --with-android-gnu-compiler-version=4.9
fi
-ac_add_options --with-android-version=9
ac_add_options --with-system-zlib
ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
ac_add_options --enable-warnings-as-errors
ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-fennec-geoloc-api.key
--- a/taskcluster/ci/android-test/test-platforms.yml
+++ b/taskcluster/ci/android-test/test-platforms.yml
@@ -12,8 +12,11 @@
# generation.
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.3-arm7-api-15-gradle/opt:
+ build-platform: android-api-15-gradle/opt
+ test-set: opt-tests
--- 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'