ReleaseEngineering/Platforms/Android: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 93: Line 93:
== AVD definition ==
== AVD definition ==
=== How to generate the AVD definitions ===
=== How to generate the AVD definitions ===
TODO: add info
== Android SDK ==
=== How to generate patched Android SDK ===
TODO: add info
TODO: add info
== Deployment of artifacts ==
== Deployment of artifacts ==

Revision as of 17:19, 22 January 2014

NOTE: This is still WIP.

Introduction

Mozilla releases a version of Firefox for Mobile/Platforms/Android Android. Mozilla's Release Engineering team support this initiative with continuous integration systems. This page explains what is involved on all the pieces related to these systems.

Currently, we build on EC2 instances (bld-linux64-ec2-XXX machines) and in-house machines (bld-linux64-ix-XXX machines). We create builds for three different architectures: armv6, armv7 and x86. We run unit tests and performance test differently on each build.

Builds & tests

Armv6

More info needed as to how we build this.

Android 2.2

Jobs: unit tests tests
Setup configuration: Foopies-board setup and fixed allocation (no mozpool).
Hosts: Tegra boards (tegra-XXX)
Scripts: factory.py
Configs: android_panda_releng.py and android_panda_talos_releng.py
Artifacts: SUT agent, watcher

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 build this.

Android 2.2

Jobs: unit tests tests
Setup configuration: Foopies-board setup and fixed allocation (no mozpool).
Hosts: Tegra boards (tegra-XXX)
Scripts: factory.py
Configs: android_panda_releng.py and android_panda_talos_releng.py
Artifacts: SUT agent, watcher

Android 2.3

This is still WIP.

Jobs: unit tests tests
Setup configuration: Emulator parralellization
Hosts: EC2 Ubuntu 64-bit instances (tst-linux64-spot-XXX or tst-linux64-ec2-XXX).
Scripts: android_emulator_unittest.py
Configs: androidarm.py
Artifacts: SUT agent, watcher, Android emulator, Android SDK, AVD definitions

Android 4.0

Jobs: unit tests' and performance tests
Setup configuration: Foopies-board setup and fixed allocation (no mozpool)
Hosts: PandaES development boards.
Scripts: android_panda.py & android_panda_talos.py
Configs: android_panda_releng.py and android_panda_talos_releng.py
Artifacts: SUT agent, watcher

x86

More info needed as to how we build this.

Android 4.2

Jobs: unit tests
Setup configuration: Emulator parralellization
Hosts: In-house Ubuntu 64-bit hosts (talos-linux64-ix-XXX).
Scripts: android_emulator_unittest.py
Configs: androidarm.py Artifacts: SUT agent, watcher, Android emulator, Android SDK, AVD definitions

Testing setup configurations

All of our Mobile testing is driven by Mozharness code to the exception of Tegras, which run code from factory.py

Foopy-Board setup

TODO: document

Mozpool allocation

Mozharness uses MozpoolClient to talk to the Mozpool server stack which IT wrote to manage & allocate the Panda boards.

Emulator parallelization

For the Android 2.3 and Android x86 jobs we're using emulator and use multiple ones at a time. Mozharness starts up four Android emulators run on each emulator a different test suite. 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 installed. These AVD definitions are stored on a tar ball, which we store on ToolTool, which we download to the host if it is not already cached. We untar it 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 u

Artifacts

Android emulator

The emulator that ships in stock SDKs downloaded from AOSP, at http://developer.android.com/sdk/ , contains the newest (and most-debugged) implementation of OpenGL host rendering and ARM emulation (from ARMv5TE through ARMv7A). We therefore use stock emulators.

AVD definition

How to generate the AVD definitions

TODO: add info

Deployment of artifacts

Hosts involved

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

Mozpool

TODO: add info

Tegra mobile boards

NOTE: Tegra boards are armv7, however, we can run armv6 builds on it.

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.

Ubuntu 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.

Ubuntu 64-bit EC2 test hosts

More info needed.