ReleaseEngineering/Platforms/Android

From MozillaWiki
< ReleaseEngineering
Revision as of 17:27, 13 November 2013 by Armenzg (talk | contribs) (Created page with "Mozilla release a version of Firefox for Mobile/Platforms/Android Android. Mozilla's Release Engineering has continuous integration to support such initiative. This page e...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Mozilla release a version of Firefox for Mobile/Platforms/Android Android. Mozilla's Release Engineering has continuous integration to support such initiative. This page explains what is involved on all the pieces related to it.

Building

We build on EC2 instances (bld-linux64-ec2-XXX machines). We create builds for three different architectures: armv6, armv7 and x86.

Android Armv7

For this architecture we build both optimized and debug builds. NOTE: We don't yet run tests on the debug builds.

More info needed as to how we run this.

Android Armv6

More info needed as to how we run this.

Android x86

More info needed as to how we run this.

Testing

We run unit tests and performance tests on Firefox for Android files on these different configurations:

Android 2.2 Armv6

We run unit tests and performance tests on Tegra development boards. NOTE: Tegra boards are armv7, however, we can run armv6 builds on it.

Android 4.0 Armv7

We run unit tests and performance tests on PandaES development boards.
We use [[1]] to run the various jobs. Mozharness uses MozpoolClient to talk to the Mozpool server stack which IT wrote to manage the boards.

Android 4.2 x86

We run unit tests and performance tests on in-house Ubuntu 64-bit hosts (talos-linux64-ix-XXX). We have written [[2] code to start up to four Android emulators on these hosts and run on each one a different test suites. This means that we can run up to four different test jobs on the same host cutting the load on the pool. Each emulator starts up with a specific avd definition that already has the SUT agent and Watcher (TODO add link to docs). These AVD definitions are stored on a tar ball which we store on tooltool (TODO add link to docs), which we download to the host if it is not already cached and untar on every job to have a clean state for the emulators to start from. TODO: explain what AVD definitions are. We deploy the Android SDK 18 (TODO add link) with puppet (TODO add link) before the machine starts a job. TODO finish this up

Deployment of artifacts

  • Link to how to deploy a new version of the Android SDK
  • Link to how to upload new avd definitions to ToolTool

How to generate patched Android SDK

TODO: add info

How to generate the AVD definitions

TODO: add info

Hosts involved

XXX: This section should be a page of its own.

Tegra mobile boards

These are mobile development boards which are named following this format: tegra-XXX. These boards currently have installed Android 2.2. These boards are located at various locations at the Mountain View office and will be moved to the new Mountain View office. The will be supported until the end of The Tegra boards are driven by Linux hosts called Foopies (TODO link to docs) which run multiple buildbot slave instances (TODO link to docs) named after the tegra boards. More info needed. Add specs.

Panda mobile boards

These are mobile development boards which are named following this format: panda-XXXX. These boards currently have installed Android 4.0. The Panda boards are driven by Linux hosts called Foopies (TODO link to docs) which run multiple buildbot slave instances (TODO link to docs) named after the panda boards. More info needed. Add specs.

Foopies

More info needed. Add specs.

Linux 64-bit in-house test hosts

More info needed. Add specs. These hosts live on scl3, they are made by iX systems, we started buying them on 2013 and they have external graphic cards installed.