Jump to content

Welcome to CyanogenMod

Welcome to our forum. Like most online communities you must register to post, but don't worry this is a simple free process that requires minimal information for you to signup. Be a part of the CyanogenMod Forum by signing in or creating an account. You can even sign in with your Facebook or Twitter account.
  • Start new topics and reply to others
  • Subscribe to topics and forums to get automatic updates
  • Get your own profile and make new friends
  • Download files attached to the forum.
  • Customize your experience here
  • Share your CyanogenMod experience!
Guest Message by DevFuse
 

A CI system for cyanogenmod?

nightly builds continuous integration

  • Please log in to reply
2 replies to this topic

#1 mwm

mwm
  • Members
  • 1 posts
  • Twitter:mikewmeyer
  • Device Model:Nexus one
  • MOD Version:6.0.0
  • Recovery Image:Cyanogen

Posted 03 November 2011 - 08:06 PM

A couple of days ago, there was a tweet about the nighty builds starting to take to long, and that there would soon need to be a solution for this.

My suggestion (at the time) was to put an artifact repository behind the build system so that components could be shared.

Recently, a second idea occurred to me: I'd like to put together a publicly accessible continuous integration (CI) system to further my career. I've worked with such in the past, but they are all proprietary, so I can't show them off. Worse yet, they used proprietary software, so I can't even claim experience with any of the publicly available CI systems. Putting up a CI system for cyanogenmod would help with both problems.

Ok, about me: I'm an experienced tools developer, most recently working on horizontally scalable distributed system ("cloud" is the marketing buzzword), including, as mentioned, CI systems. I've dabbled with Android application programming, but nothing really serious. I've never tried building a ROM image at all. While I have done some Unix kernel programming, those days are long behind me, and I'm happy with that, so don't see building ROM images as a primary goal in my future.

However, building a CI system that built ROM images, on the other hand, is an interesting prospect. At least if there's a reasonable chance that it would actually get used by the CM community.

A quick overview of CI systems for those not familiar with them. The idea is to potentially kick off builds of *everything* at regular - and frequent - intervals.  When you build something, for each component you check to see if it's already in the repository, and if so just check out the build results. Otherwise, you build the component from a clean checkout, and then at the end build everything. Nighlies

Developers don't have to change anything - their stuff will get built when it gets to the source repository the CI system is checking. On the other hand, if they're willing to hook into the build system, they can quit checking out source they don't change and just check out build results from the artifact repository. In some cases, they may not even need to do that - the build would happen in the build cluster, and all they'd have locally is the results of building their source and the final ROM image. Again, this isn't required, just possible if you want to.

Based on searching the forums, there's some interest in this. Is the current system close enough that it's not wanted? Or would the people who could switch things to it be interested in seeing what it's like?

   Thanks for reading this far,
   <mike

#2 ciwrl

ciwrl

    Whose bright idea was it to put me in charge?

  • Administrators
  • 1605 posts
  • Twitter:ciwrl
  • Country:us
  • Device Model:DS|N1|G2|SGS|SGN|N4
  • MOD Version:[Latest]
  • Recovery Image:ClockworkMod

Posted 06 November 2011 - 06:42 PM

Forwarded to Chris Soyars, our buildbot maintainer

#3 ChrisSoyars

ChrisSoyars
  • Administrators
  • 7 posts
  • Twitter:ChrisSoyars
  • Country:us
  • Device Model:|1|2|3|4|
  • MOD Version:Bleeding Edge
  • Recovery Image:ClockworkMod

Posted 06 November 2011 - 10:40 PM

We use BuildBot (www.buildbot.net), which fits our needs well enough.  We just need more compute power for ICS, nothing a "custom" CI system will fix, as we have to do complete clean builds every night, as some changes require a clobber.