Continuous Integration of Enterprise/Community Android OS Projects
Submitted by Arnav Gupta (@championswimmer) on Friday, 28 August 2015
I had been to DroidCon last year to describe how to modify the Androi OS and make your own custom ROM build.
This time I wish to describe the next step which involves setting up a set of source code mirrors, a code review server, a bug tracker, and a CI server to be able to create a end-to-end CI for Android ROM building. This pertains to both community based ROM projects like CyanogenMod, AOKP, OmniROM etc, and for enterprise projects by OEM/ODMs to build their own internal proprietary Android-based OS.
Whether you want to create a community based / open source Android custom ROM project, or you are from an OEM/ODM who is creating their own fork of Android, you’ll have the need for the following;
- Hosting the source centrally, which can be checked out and committed back to easily
- Host a code-review server, because you’ll have multiple engineers working simultaneously on multiple sub-modules
- Set up a CI server for building the ROM (for both testing patches and generating nightlies/releases)
This workshop will cover these three main problem statements and will be consisting of 3 parts
- Checking out the Android Open Source Project, and host your own fork (or a part of it); be able to download and sync it using repo
- Setup and host code review using gerrit (A code review software made by Google and used by AOSP and Chromium project); managing repositories, user roles and rights, replication etc.
- Setup a buildbot using Jenkins/Hudson. Setting up build tasks for testing of patches, and for generating nightly/snapshot/release builds.
- Basic understanding of the Android OS build process
- Experience with working on framework/OS layer with Android
- Basic knowledge of Git version control system, and a 10-15 min lookup into topics like Jenkins CI, Gerrit etc
You should bring a laptop running a Linux OS if you wish to parallelly experiment with the stuff being demonstrated on stage.
If people want to follow the steps I am showing, it’s imperative they are running Linux (or at least Mac. not Windows). If they have a downloaded copy of gerrit and jenkins distributions, it would be good as well.
Gerrit downloads - http://gerrit-releases.storage.googleapis.com/index.html
Jenkins Downloads - http://mirrors.jenkins-ci.org/war/
Currently pursuing a Bachelor’s degree in Electrical and Electronics Engineering at Delhi Technological University and freelancing as an Android platform and OS consultant.
I have been a Developer and Device Maintainer at CyanogenMod and AOKP, making the latest Android source work on Sony Xperia devices, while adding awesome usability features that make users fall in love. A couple of features I have written have also made their way into Google’s Android Open Source Project, and can be found in Kitkat and Android L.
I have been a Open Source community partner with Sony Mobile for the last two years, which basically means I get the latest Xperias to hack around with as soon as they are launched.
Last year, while working at Cube26, I have been part of the team that made many contextually smart UI/UX enhacements for the Micromax Canvas A290, A310, A315 series of phones.
I am also an open source enthusiast with contributions to Linux, GNOME, Arduino, Android and other open source projects, and a Google Summer of Code alumnus.
Have been a speaker at Mobile Developer Summit 2014, and DroidCon 2014.