Greg Troxel <
g...@lexort.com> writes:
> For 1), the thing that I think would help is to have more explicit
> support for filesystem types, perhaps both for the fs to be backed up
> and restored, and for where the BUP_DIR is. Although perhaps it's only
> the former that is thought to matter.
For now, the easiest thing to do is just clone or copy the source tree
onto the relevant filesystem and run "make check" from there. (That's
what my hacked up test script does.)
I'm not sure I've caught every case, but I've been trying to shift all
the tests to use ./t/tmp.
> I just ran the tests on bup 0.26 in pkgsrc, and they all passed
> (netbsd-6 i386, python 2.7). That's great, because they used to run out
> of space, so maybe they are thriftier.
I suspect that's due to the t/tmp migration. (And that reminds me of
another potential axis for the build space: python X.Y for each
supported X.Y.)
> It seems like this is a common problem for everyone, not just bup, but
> I am unaware of general solutions.
It's definitely not a small-scale problem.
I suppose you could get by if you had a set of qemu images for the
platforms of interest -- perhaps each might already have the bup build
deps installed and allow root ssh logins via a known key -- or perhaps
the images could run buildbot. They'd also need a known, non-root user
for non-root tests.
(...and then we store all the VM images in a central bup repo via
split?)
Of course this approach won't work for non-free platforms since you
probably can't share the images.
For what it's worth, right now, I just have a host I can fire up via kvm
on the command line, and it's set to use a serial console (so I don't
have to deal with a separate window). I originally built the image via
vmdebootstrap.
Once it's running, it'll accept root logins on a forwarded port via a
known key. So to run a test there, I just have a command that rsyncs my
bup working dir to /root/bup on the VM, and then runs "make check" (or
whatever command I specify).
> 3) It may be possible to get various people to host a vm that will
> basically only talk to a CI server and central git repo, and let it
> run. That's probably easier policy-wise than a machine that arbitrary
> other people can access and run code on.
Right - that's one of the options I was pondering, i.e. perhaps
volunteer maintained buildbot buildslaves, though I'm not deeply
familiar with buildbot yet. Of course, if we eventually have the qemu
images mentioned above, then hosting an instance might be fairly easy.
But that raises some additional questions, i.e. regarding security,
security updates, etc.?
I suspect you'd really want the build VMs to be roughly inaccessible
from the net, only communicating results, etc. But I don't know how
easy that would be to arrange.
And of course, as you say, little of this is really a bup specific
problem.