Hello,

We've just started trialing Hydra at work and are very impressed with the
results - it's a lovely bit of kit! I feel we'd be able to use it even
better if there was a way to have what I'm calling "all or nothing"
channels.

We have a jobset that consists of the following jobs:

* frontend - builds the website, minifies scripts, etc
* metronome - compiles a Haskell web server
* fynder - compiles a Haskell library used by the web server
* acceptance-tests - runs end-to-end acceptance tests for the frontend
against metronome.

I'd like to create a channel that contains the `frontend`, `metronome` and
`fynder` packages. The jobset channel gives me exactly this, but
unfortunately the channel is updated too frequently. The jobset channel
updates when *any* job successful builds, irrespective of the other jobs.

I've had a look into `releaseTools.aggregate`, which certainly seems to be
going in the right direction. Now we have a `fynder-stack` job that has the
above 4 jobs as constituents. I was hoping that I could use this as a
channel, but unfortunately this doesn't have anything as build contents.

I suppose what I'm trying to do is a small scale version of the nixos
channels themselves. If I understand correctly, these only get updated if
the `tested` job (which is an aggregate job) passes. Would it be possible
to do this entirely in Hydra without scripting? If it requires scripting,
could anyone show me what "listens" for success of the `tested` job on
Hydra, so I can try and copy the approach?

Thanks to everyone working on Hydra, looking forward to making it a key
part of our infrastructure!
- ocharles
_______________________________________________
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to