Android multi-build is a very simple build-system built on top of the normal Android build-system tailored for those who need to maintain multiple Android builds.
- Near zero learning-curve.
- Build system 100% external to source-trees being built.
- Automatically generate changelogs for builds.
- Intelligent build: Dont build when there are no changes since last build.
- Automatic deployment of builds to hosting provider (FTP only for now).
- Automatic (and optional) Linaro toolchain support.
- Ability to non-destructively inject Linaro toolchain seamlessly into existing source-trees.
- Simple (very simple), declarative build format.
- Low error tolerance: Builds fails immediately, where the error occured.
- You already have one or several Android source-trees and you know how to build them.
- Existing trees are pre-primed, have vendor-binaries, etc and are ready to build.
- Tree is a CyanogenMod or similar AOSP-based tree which can be built with the normal Android build procedures.
- One tree is used for one device only. While re-using the same tree for multiple devices will produce good builds, the changelogs might include things they shouldn't.
-
Ensure you have one or more properly prepared Android source-trees.
-
Clone repo.
$ git clone https://github.com/josteink/android_multi-build
-
Do a local branch to store your configs/customizations.
$ git checkout -b production
-
Customize builds in
run_all_builds.sh
. Instructions and examples can be found in the file itself. -
Customize target server in
data/server.cfg
. -
Execute build.
$ ./run_all_builds.sh
-
Wait for builds to finish.
Updates are done simply by pulling updates from github:
$ git pull origin master
Changes should then be merged into your production config.
Not making any promises, but these are things I might want to do in the future:
- Better documentation, in code and elsewhere.
- Extensibility (kernel variations, SSH/SCP upload).
- Email reports.
- Forum posting of builds.
Contributions welcome.