[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug-gsrc] Integration testing with Nix/Hydra
From: |
Ludovic Courtès |
Subject: |
[bug-gsrc] Integration testing with Nix/Hydra |
Date: |
Thu, 01 Apr 2010 22:47:26 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
Hello,
Brian Gough <address@hidden> writes:
> I made a nix expression from your script to run against nixpkgs-libre.
> It seems to work ok on fencepost (using stdenvNative) but I'm not sure
> if it is the "correct" way to do it--I'm still learning the nix
> language. I will refine it and look at what dependencies we are
> bringing in.
>
> I think we can easily restrict the build to our candidate package set
> by fixing the gnu entry in mirrors.nix to point a local directory, so
> we only bring in the specific GNU package versions we want.
Changing ‘gnu’ in mirrors.nix would allow us to fetch packages locally,
for instance; it wouldn’t allow us to select package versions, though,
since that’s what individual Nix expressions like
pkgs/tools/misc/coreutils/default.nix do.
> Incidentally, is there any documentation about how to write a Hydra
> jobset? I looked at your guile-2-test.nix but couldn't figure it out
> from that.
I don’t think there is. In principle it’s quite simple but that one,
which derives from pkgs/top-level/release.nix, is quite hairy. :-)
I suggest looking at the job sets in the ‘gnu’ project
<http://hydra.nixos.org/project/gnu>, which are available at
<https://svn.nixos.org/repos/nix/hydra-config/gnu/trunk>.
So, a Hydra job set is an attribute set in the Nix language. Each
attribute is evaluated by Hydra and corresponds to a Hydra job. Most of
the type, a job takes parameters, which are passed by Hydra, at least
the system type (e.g., ‘i686-linux’); in the case of hydra-config/gnu,
jobs also typically take a fresh checkout as a parameter.
To test SRC, we could typically mimic pkgs/top-level/release.nix like
this:
--8<---------------cut here---------------start------------->8---
with (import ./release-lib.nix);
mapTestOn {
acct = linux;
aspell = linux;
auctex = linux;
autoconf = linux;
[...]
zile = all;
}
--8<---------------cut here---------------end--------------->8---
And that should be enough. Most build results will be cached anyway, so
that won’t cost much.
Hmm I realize we can easily add such a job set to hydra-config/gnu,
esp. since I can administrate it on Hydra’s web interface. I’ll look
into it and report back.
Thanks,
Ludo’.