Android Build Configs in GIT

Registered by Alexander Sack

android-build jobs currently use the build configuration field in jenkins to maintain a few options needed to reproduce the build. The configuration data discussed here includes information about manifest branch location, but also things like build optimization flags, toolchain parameterizations and source overlay URLs.

This blueprint aims at adding support to android-build to pull such config data from a git repository.

For that the following changes are developed:

 1. configurations of all "official" baseline builds are getting moved to git
 2. android-build tools will grow config options that specify a git maintained config location and source it's configurations from there
 3. android-build tools job will export a formatted build-config.txt artifact that contains the information to reproduce a build; at least the repo url, revid and optionally a gitweb URL for the repo of the config that was used
 4. a follow up blueprint will get filed to initiate the next stage: improving the build frontend to present and link to the right git web directly on the web UI.

Blueprint information

Данило Шеган
Alexander Sack
Zach Pfeffer
Series goal:
Accepted for trunk
Milestone target:
milestone icon backlog
Started by
Fathi Boudra
Completed by
Milo Casagrande

Related branches



[asac, Fri 11, 2011]: drafted; replayed the current work done.
[asac, Fri 11, 2011]: build configs for official tip builds has been created here:
[dzin, Jun 7, 2012]: not started in 12.05, moving to 12.06
[danilo, Jun 26, 2012]: moving to backlog, no time for this.

Headline: Android build service offers build job parameterization in git
Acceptance: Build configs are maintained in a gerrit managed git tree; build revision will be be exported in a build-meta.txt file that also ships other info needed to locally reproduce. build-meta.txt file format is defined. build-meta.txt format allows improving the format over time through specifying a fromat-spec version. Blueprints for improving the build frontend to display this info conveniently as well as for fixing the convenient build scripts to really reproduce a build using the build-meta info have been filed. asac has signed off the follow up blueprints.


Work Items

Work items:
Define build-meta.txt format: TODO
get sign off by asac for the format definition: TODO
create blueprint for improving build frontend: TODO
create blueprint for improving the build tools: TODO
get sign off by asac for the follow up blueprints: TODO
create git repository that hosts the build configs: DONE
specifiy and document parameter variables names used to configure location of the config in git: TODO
improve build scripts to support defined config variables for sourcing the build configuration: TODO
implement feature to export a build-meta.txt that describes the defined data: TODO
roll out build script to production branch: TODO
validate that new feature works using a private build: TODO
validate that old way of configuring still works using a private build: TODO
add build configs of all official tip jobs to the git repository: TODO
switch all official tip jobs over to the git approach: TODO
do a pipe cleaning build for all changed jobs and fix issues found: TODO
validate that build-meta.txt contains the information to needed to reproduce the build,in particular the git repo and revid of the config used for that build: TODO
announce support of new feature to the world: TODO

This blueprint contains Public information 
Everyone can see this information.