Integrate the building of the android phablet parts into cdimage
To build consistent phablet images which consist of two layers (android and ubuntu rootfs) it is essential that we can build both parts at the same time (featuresets and bugfixes can span across both layers). As of today cdimage will be easily able to roll the ubuntu rootfs while the android bits can not be triggered by cdimage yet. One proper solution would be to use the i386 livefs builder for cross building android img files that can be published alongside with the rootfs builds.
Blueprint information
- Status:
- Not started
- Approver:
- Steve Langasek
- Priority:
- Undefined
- Drafter:
- Oliver Grawert
- Direction:
- Needs approval
- Assignee:
- Oliver Grawert
- Definition:
- New
- Series goal:
- Accepted for raring
- Implementation:
- Unknown
- Milestone target:
- ubuntu-13.04-month-5
- Started by
- Completed by
Whiteboard
Notes from session:
Currently the Android image is generated by the internal PS jenkins instance, while the Ubuntu rootfs is generated at IBS (with an older live-build).
We want to move both parts at cdimage, so we could follow the same path as done for the other Ubuntu images.
Do we have enough CPU/Memory/Disk resource to cross build the Android images there?
* Seems so, as it's already building a lot of livefs images
How many builds do we need initially? Seems 4 would be a start (nexus family), but it might need to support more depending on external need for official images/products.
Would have a new map of cross-livefs buildds on top of the current map of livefs buildds (cjwatson: not really necessary to have a layer of abstraction just for this; it's just another entry in the existing project/
Complying with requirement to provide source: could either base on tarballs with a checkout, or never ever remove commits and repos from phablet.u.c
In any case, should include a manifest summing up the commit ids of all the repos
android x86 source tarball downloads:
https:/
Don't strictly need a tarball for now as with the git repos and all it would be ~ 10 GB or so, but we could consider it in the future
Could use a tarball to seed an initial cache which could then be updated with git; similar for build performance
Wouldn't need a phablet.u.c mirror, even internally
What's the target time budget for building?
Current builds are less than one hour in jenkins, which doesn't really need further optimization right now
Could consider caches to speed up initial cloning and such, but only if that's useful
Currently, all devices are built in a single pass, would prefer one pass per device unless that's too costly
Does it interfere/benefit with/from livefs builds in Launchpad?
This work is only intended for resource usage optimizations, which aren't really an issue
Probably don't need to handle community builds in the short-term (we can't for legal reasons, binary blobs); will focus on Nexus builds
Would need a BuildLiveCD parameter to pick the right branch name from the git repos; would be transporter by manifest URL though
How do we combine the cross-livefs build with the livefs build? would just push them in the same directory
Currently the output looks like http://
There would likely be 3 build ids: 1 for livefs builds, 1 for cross-livefs builds, one for combined directory
Currently using http://
Would like to implement a /latest link just as for the livefs build logs, always pointing at the latest *good* build
Would need to poke a hole in the firewall and find a way to trigger the update of /latest from jenkins once it has run the smoke tests back to cdimage
------------------
Seeds have been created at:
https:/
The corresponding meta package is ubuntu-touch-meta
Work Items
Work items:
[ogra] create an ubuntu-touch seed and corresponding metapackage: DONE
[ogra] Publish a legal disclaimer at cdimage as well: DONE
[rsalveti] Publish the git head hash for all git repositories used during build: DONE
[ogra] Talk to sergio about the existing scripts and how to integrate them into BuildLiveCD: DONE
[ogra] Implement building in BuildLiveCD of livecd-rootfs: DONE
[cjwatson] Work with IS to get firewall hole from jenkins to nusakan/ssh (RT#60215): DONE
[cjwatson] Integrate jenkins-triggered latest/current symlink management into cdimage: DONE
Work items for ubuntu-
[ogra] Implement the right magic into cdimage's buildlive to trigger BuildLiveCD the right way: INPROGRESS
[ogra] Make sure the amd64 livefs builder can see phablet.ubuntu.com (RT#60362): DONE
[ogra] make sure the new BuildLiveCD is in place on the respective livecd builders (RT #60446): DONE
[ogra] make sure that the hashes for all the branches being used are published as part of a log/manifest, for reproducibility
[ogra] Make cdimage aware of the different image parts a phablet image consist: TODO
[sergiusens] Update PS Jenkins to poll cdimage and trigger /pending update on Touch images once smoke tests pass: TODO