
The following might count as a trick. It checks that all .stack-work directories are mentioned in the .gitlab-ci.yml file. A nicer approach than the ugly grep is to use jq-on-yaml, but this works for me. The goal is just to fail CI if a new module is added without caching it. # Check that all stack work directories are cached - diff -u <( find . -name .stack-work | grep -v '.stack-work.*.stack-work' | grep -v '.stack/' | grep -v node_modules | cut -c3- | sort) <( grep .stack-work .gitlab-ci.yml | egrep -v 'find .|for a|rm -rf|^\s*#.*|grep' | tr -d '"' | awk '{print $2}' | cut -d/ -f5- | sort) Alexander On Tue, Oct 24, 2017 at 10:43 PM, Matthew Pickering < matthewtpickering@gmail.com> wrote:
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
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
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
On Tue, Oct 24, 2017 at 10:33 AM, Jeroen Bransen
wrote: like to 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.
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.