[Haskell-cafe] Haskell CI with many repositories/packages

Jeroen Bransen jeroen at chordify.net
Fri Oct 27 09:49:23 UTC 2017


This is a very interesting suggestion. We are not using Nix, so the 
whole setup would change, but it is something we can consider for the 
buildserver (and maybe even other machines). If I understand correctly 
the packages are then not built anymore with Stack, but rather with Nix 
specific build scripts. Everything else follows then naturally because 
of the nice nature of Nix.

I'll definitely look into this, but a solution using Stack would be nice 
and much easier to set up currently.

Regards,
Jeroen Bransen

Op 24-10-2017 om 22:43 schreef Matthew Pickering:
> It sounds like using Hydra (the Nix based CI system) would be suitable
> for your needs.
>
> The essential work flow would be to create a package set which
> contained all your packages and then create a job set which built that
> package set.
>
> What's more, if your developers are also using nix then it is trivial
> to setup a build cache which serves prebuilt packages to them.
>
> The manual provides a concise introduction - https://nixos.org/hydra/
>
> Matt
>
> On Tue, Oct 24, 2017 at 10:33 AM, Jeroen Bransen <jeroen at chordify.net> wrote:
>> Hi cafe,
>>
>> Does anyone know of a good setup for doing continuous integration with a set
>> of Haskell packages, each in its own repository? Just building everything
>> upon every commit is not so hard, but to speed up building times I'd like to
>> build and test only the minimal set of packages. In particular, at a commit
>> for some package A, I would like to build and test A and all packages that
>> depend on A.
>>
>> The problem is that most CI tools use some notion of 'build artefact', which
>> Stack doesn't really seem to give me. Ideally building a package results in
>> some object file, which can then be used by the other packages. When
>> building failed, packages that depend on it can still use the last succesful
>> build. I've tried to look up some Haskell projects, but most of them seem to
>> use some ad hoc setup.
>>
>> Some pointers are appreciated, as we are using Gitlab a gitlab-runner
>> specific option would be great, but I am also open to use Jenkins or other
>> tools. And I guess my main struggle now is on the stack/Haskell side.
>>
>> Regards,
>> Jeroen Bransen
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.



More information about the Haskell-Cafe mailing list