Closed Bug 962686 Opened 11 years ago Closed 11 years ago

Ensure way to create VM that can generate our current Android 2.3 armv7 emulator

Categories

(Infrastructure & Operations Graveyard :: CIDuty, task)

x86_64
Linux
task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: armenzg, Assigned: armenzg)

References

Details

This is the information I have. Documentation on how to create the AVD definitions: https://wiki.mozilla.org/ReleaseEngineering/Platforms/Android#How_to_generate_the_AVD_definitions Armen says: > Graydon created a working emulator which is inside of the avd tar ball. > What we want to do is have the means to produce the same emulator but > that requires a method of snapshoting or storing all packages that got > installed by him. Dustin says: > Since this is a very occasional, and very manual process, I think it would be fine to just > snapshot the VM on which it was last performed. It doesn't seem like things are > sufficiently well-defined that we could build a puppet manifest describing exactly > which packages are required, and what kind of local tweaks need to be made, in any > reasonable amount of time. > So, perhaps just clean out his AWS VM and capture it into an ami? Then any further > developments can be captured into subsequent ami's, while keeping the original available > as well in case there's a need to revert or compare. > On 14-01-21 07:07 AM, Armen Zambrano G. wrote: > >> I want to figure out what you used to create the avds. > > I debugged the process on my workstations/laptops and did the final > builds on comparatively-cleaner AWS machines. > >> Did you use your local machine? Did we loan you an AWS build machine? Or >> a test machine? > > AWS machines I rented myself, out of pocket. I needed machines with a > ton of disk space and CPU, and had to repeatedly re-image / start over. > Didn't want to bother you with each and every change while I was > experimenting. > >> Do you have documented what packages you installed? > > The required packages are all installed by the mozharness script, as are > all the source checkouts, SDK/NDK URLs and whatnot. > >> I tried asking my team and the IT team that supports us on how to best >> be able to reproduce your setup. >> However, I have very little insight of what is involved. > > Starting from a stock ubuntu 12.04LTS x64 instance and running the > mozharness script I wrote ought to produce the same AVDs I uploaded, at > least "currently". That was part of the point of the script: to write > down all the requirements to build the thing. > > The problem isn't so much reproducing it _now_, it's making sure that it > doesn't bitrot so fast that nobody can reproduce it in the _future_. > There are a lot of parts involved: > > - From Ubuntu: > - 12.04LTS x64 release + gcc 4.4 32bit cross toolchains > - A pile of random additional 32 and 64 bit debs > > - From AOSP: > - Android NDK > - Android SDK > - The AOSP tree itself (this is enormous -- 30GB to mirror) > - Goldfish linux kernel > > - From Mozilla: > - Orangutan > - nightly tests.zip: Watcher and SUTAgent APKs > - Mozharness > > - From Oracle: > - Official Java 6 JDK (OpenJDK doesn't work) > > If any of these drift over time -- and they will -- I am not sure it'll > be "perfectly reproducible". So I was thinking it might be useful to > freeze an AMI containing some of the parts. Or mirror some of them. I'm > not sure what approach is best for archival. > > -Graydon
On 14-01-22 10:21 AM, Armen Zambrano G. wrote: > I've got a question wrt the emulator, when we build the AVDs, are we > also building the emulator binaries? Yes. For two reasons: 1. It's necessary to start the AVDs up and do some customization on them in-tree before archiving them in a tarball. The emulators that the AVDs are customized-under is the one built in-tree along with the rest of AOSP (though probably newer emulators would also work for this step). 2. I wasn't sure, during exploration of the problem space, if we'd wind up needing "custom" (patched or from-specific-dev-branch) emulator binaries. It turns out that any sufficiently fresh SDK-provided emulators (such as SDK release 22) are fine, but I didn't know that when working, so the script does also tar up and deposit an emulators-<arch>-<tag>-build-<date>.tar.gz file in the output directory as well. This artifact is not presently useful to us. -Graydon
The only part that was sometimes a little accident-prone is that the oracle-java6-installer deb requests interactive acceptance of an oracle license, and that fights with mozharness over the TTY when prompting for license-acceptance. So it might be better to install that package manually first. > How can I create a VM like yours? Make a VM with >30GB of scratch space, possibly closer to 50GB, running ubuntu 12.04LTS, and run the mozharness script. Possibly installing the oracle-java6-installer from the ppa:webupd8team/java PPA manually, first. Also be prepared for a long wait, and .. try to run it in a datacenter with a really fast connection. It has to download a ton of code.
Blocks: 971176
In bug 970324 we managed to create a VM based on graydon's AMI. Documentation was added in here: https://wiki.mozilla.org/ReleaseEngineering/Platforms/Android#Create_EC2_instance_based_on_graydon.27s_initial_AMI
Assignee: nobody → armenzg
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Component: Platform Support → Buildduty
Product: Release Engineering → Infrastructure & Operations
Product: Infrastructure & Operations → Infrastructure & Operations Graveyard
You need to log in before you can comment on or make changes to this bug.