On Thu, 27 Jan 2011 15:35:44 +0100, Loïc Minier loic.minier@linaro.org wrote:
Hey
I'd like to propose moving our Hudson stuff to Launchpad hosted branches. This would be useful to:
What do you mean by stuff? Configs? Generically useful scripts? Although I'm not really sure how much of the latter there will be.
- share our stuff, perhaps in common repos across hudson instances (see below)
- have everybody follow best practices of keeping as much as possible under a VCS
- help move/factor hudson instances (e.g. factor two instances in one, move from home server or cloud to Linaro/Canonical IS datacenter)
I don't know how much having the config in bzr is going to make merging two instances easier... I guess a bit.
I see two ways to approach this problem:
- each team owns a hudson instance, and stores its config and scripts in the team's namespace; this doesn't encourage factoring instances together though
- we create a virtual team of people caring for hudson stuff, e.g. ~linaro-hudson-hackers, and we put branches below that
TBH, one team per hudson is probably about right. My instincts about how much will be reasonably shareable between instances might be wrong though.
We will need to keep the hudson configs private because they might hold private data like hudson's secret key or the userdb, perhaps with some private bzr branches? or can we move to openid and avoid storing the other secret keys already?
The hudson-ec2 plugin requires having the ec2 credentials in the config, which is another reason to keep it private.
The branch with build script would of course be public.
We could have some cron committing each config (changed from the web UI) hourly, and pushing it to LP, and a cron pulling the latest version of the scripts hourly (or a special hudson job which does either).
For scripts, we'd have to agree on some conventions such as namespaces for Android build scripts (e.g. android-list-changes), hudson job definitions (e.g. job-build-u-boot, or job-build-android).
Two things which might slow us down if we want to proceed:
- Hudson might get renamed due to the situation with Oracle
I don't think this is a good thing to block on. We should deal with it when it happens, not make guesses about what and when things might change IMHO.
- getting private branches
This is easy these days; any admin or member of ~bazaar-experts can twiddle a branch to private.
- we need some kind of Launchpad accounts for the hudson instances to commit stuff
Paul, James, Michael Hudson, (Alexander?), and anybody, what are your thoughts?
I think broadly this makes sense.
I have a related question, which is what do you have in your .bzrignore for your branches that contain hudson configs? I just have this currently:
slave-*.log ./jobs/*/builds
which avoids checking in the output of the builds. Is there anything else that should be excluded?
Cheers, mwh