ReleaseEngineering/Platforms/Android: Difference between revisions
No edit summary |
|||
| Line 1: | Line 1: | ||
Mozilla | = Introduction = | ||
Mozilla's Release Engineering | Mozilla releases a version of Firefox for [[Mobile/Platforms/Android Android]]. | ||
This page explains what is involved on all the pieces related to | 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 create builds for three different architectures: armv6, armv7 and x86. | ||
We run unit tests and performance test differently on each build. | |||
== Android Armv7 == | = Builds & tests = | ||
== Armv6 == | |||
More info needed as to how we build this. | |||
=== Android 2.2 === | |||
Jobs: '''unit tests''' tests <br /> | |||
Setup configuration: Foopies-board setup and fixed allocation (no mozpool).<br /> | |||
Hosts: Tegra boards (tegra-XXX) <br /> | |||
Scripts: [http://hg.mozilla.org/build/buildbotcustom/file/default/process/factory.py factory.py] <br /> | |||
Configs: [http://hg.mozilla.org/build/mozharness/file/default/configs/android/android_panda_releng.py android_panda_releng.py] and [http://hg.mozilla.org/build/mozharness/file/default/configs/androidandroid_panda_talos_releng.py android_panda_talos_releng.py]<br /> | |||
Artifacts: SUT agent, watcher | |||
== Armv7 == | |||
For this architecture we build both '''optimized''' and '''debug''' builds. | For this architecture we build both '''optimized''' and '''debug''' builds. | ||
NOTE: We don't yet run tests on the debug builds. | NOTE: We don't yet run tests on the debug builds. | ||
More info needed as to how we | More info needed as to how we build this. | ||
== Android | === Android 2.2 === | ||
Jobs: '''unit tests''' tests <br /> | |||
Setup configuration: Foopies-board setup and fixed allocation (no mozpool).<br /> | |||
Hosts: Tegra boards (tegra-XXX) <br /> | |||
Scripts: [http://hg.mozilla.org/build/buildbotcustom/file/default/process/factory.py factory.py] <br /> | |||
Configs: [http://hg.mozilla.org/build/mozharness/file/default/configs/android/android_panda_releng.py android_panda_releng.py] and [http://hg.mozilla.org/build/mozharness/file/default/configs/androidandroid_panda_talos_releng.py android_panda_talos_releng.py]<br /> | |||
Artifacts: SUT agent, watcher | |||
== Android | === Android 2.3 === | ||
This is still WIP. | |||
Jobs: '''unit tests''' tests <br /> | |||
Setup configuration: Emulator parralellization <br /> | |||
Hosts: EC2 Ubuntu 64-bit instances (tst-linux64-spot-XXX or tst-linux64-ec2-XXX). <br /> | |||
Scripts: [http://hg.mozilla.org/build/mozharness/file/default/scripts/android_emulator_unittest.py android_emulator_unittest.py]<br/> | |||
Configs: [http://hg.mozilla.org/build/mozharness/file/default/configs/android/androidarm.py androidarm.py]<br /> | |||
Artifacts: SUT agent, watcher, Android emulator, Android SDK, AVD definitions | |||
== Android | === Android 4.0 === | ||
Jobs: '''unit tests''' and '''performance'' tests <br /> | |||
Setup configuration: Foopies-board setup and fixed allocation (no mozpool) <br /> | |||
Hosts: [http://pandaboard.org/node/300/#PandaES PandaES] development boards.<br /> | |||
Scripts: [http://hg.mozilla.org/build/mozharness/file/default/scripts/android_panda.py android_panda.py] & [http://hg.mozilla.org/build/mozharness/file/default/scripts/android_panda_talos.py android_panda_talos.py] <br /> | |||
Configs: [http://hg.mozilla.org/build/mozharness/file/default/configs/android/android_panda_releng.py android_panda_releng.py] and [http://hg.mozilla.org/build/mozharness/file/default/configs/androidandroid_panda_talos_releng.py android_panda_talos_releng.py]<br /> | |||
Artifacts: SUT agent, watcher | |||
== x86 == | |||
More info needed as to how we build this. | |||
=== | === Android 4.2 === | ||
Jobs: '''unit tests''' <br /> | |||
Setup configuration: Emulator parralellization <br /> | |||
Hosts: In-house Ubuntu 64-bit hosts (talos-linux64-ix-XXX). <br /> | |||
Scripts: [http://hg.mozilla.org/build/mozharness/file/default/scripts/android_emulator_unittest.py android_emulator_unittest.py]<br/> | |||
Configs: [http://hg.mozilla.org/build/mozharness/file/default/configs/android/androidarm.py androidarm.py] | |||
Artifacts: SUT agent, watcher, Android emulator, Android SDK, AVD definitions | |||
== | = Testing setup configurations = | ||
All of our Mobile testing is driven by [[ReleaseEngineering/Mozharness|Mozharness]] code to the exception of Tegras, which run code from [http://hg.mozilla.org/build/buildbotcustom/file/default/process/factory.py factory.py] <br /> | |||
== | == Foopy-Board setup == | ||
TODO: | TODO: document | ||
== | == Mozpool allocation == | ||
Mozharness uses [https://pypi.python.org/pypi/mozpoolclient MozpoolClient] to talk to the [[ReleaseEngineering/Mozpool|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. | |||
Each emulator starts up with a specific | |||
These AVD definitions are stored on a tar ball which we store on | |||
TODO: explain what AVD definitions are. | 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. | We deploy the Android SDK 18 (TODO add link) with puppet (TODO add link) before the machine starts a job. | ||
TODO finish this | TODO: finish this u | ||
=== Deployment of artifacts | = Artifacts = | ||
== Android emulator == | |||
=== How to build the emulator === | |||
TODO: add info | |||
== AVD definition == | |||
=== How to generate the AVD definitions === | |||
TODO: add info | |||
== Android SDK == | |||
=== How to generate patched Android SDK === | |||
TODO: add info | |||
== Deployment of artifacts == | |||
* TODO: Link to how to deploy a new version of the Android SDK | * TODO: Link to how to deploy a new version of the Android SDK | ||
* [[ReleaseEngineering:Buildduty:Other_Duties#How_to_upload_to_Tooltool|How to upload a new AVD definition to ToolTool]] | * [[ReleaseEngineering:Buildduty:Other_Duties#How_to_upload_to_Tooltool|How to upload a new AVD definition to ToolTool]] | ||
= | = Hosts involved = | ||
TODO: | TODO: This section should be a page of its own. | ||
== | == Mozpool == | ||
TODO: add info | 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 are mobile development boards which are named following this format: tegra-XXX. | ||
These boards currently have installed Android 2.2. | These boards currently have installed Android 2.2. | ||
| Line 93: | Line 123: | ||
More info needed. Add specs. | More info needed. Add specs. | ||
== | == Ubuntu 64-bit in-house test hosts == | ||
More info needed. Add specs. | 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. | 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. | |||
Revision as of 17:04, 21 January 2014
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
How to build the emulator
TODO: add info
AVD definition
How to generate the AVD definitions
TODO: add info
Android SDK
How to generate patched Android SDK
TODO: add info
Deployment of artifacts
- TODO: Link to how to deploy a new version of the Android SDK
- How to upload a new AVD definition to ToolTool
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.