On 4/2/17 6:03 AM, Mojca Miklavec wrote:
Thank you. Please include that into the proposal as well. It wasn't
clear to me whether your project would be a full "replacement"
compared to the current functionality of the buildbot or just covering
some small load cycle (like doing very very basic checks). It seems
you aim for the former.
In that case there are a few things that potentially worry me.
1.) They have HomeBrew installed. This is probably a bad thing and a
good thing at the same time. The official server should not have any
traces of HomeBrew to avoid linking against /usr/local/whatever
instead of /opt/local (but it's not a dealbreaker for the testing
infrastructure). Then again, we might spot some problems and try to
avoid them when we find such cases.
I'll uninstall Homebrew from the VM if needed.
2.) We sometimes consume almost 100% of server load on a multicore
server (sometimes for a couple of days). And we sometimes run out disk
space. What happens if Travis bans us (or asks for a price that we
cannot afford to pay) right at the moment when the full solution gets
implemented? I believe we should contact Travis upfront to make sure
that they can meet our expectations. And in any case I would like to
see slightly more details about how the plan intends to keep our
footprint (disk resources and cpu cycles) low. Would you uninstall all
existing packages after each trial and install them again from
packages.macports.org for the next build? Would you keep official
packages installed & inactive between multilple runs and just clean up
whatever the pull request tried to build? (Less important: How would
you avoid rebuilding the whole of Qt after, say, minor edit of
comments in a pull request?)
Travis won't keep the VMs up. Every build gets a fresh VM (no need to
cleanup) and could only run for 50 minutes so if a build takes too long
it will fail anyway.
You're right about high server load. Since we already have the Buildbot
infrastructure I'll only do install tests in PRs. Lint tests will be
done for both commits and PRs. I'll limit the number of ports to test so
if a PR touches too many ports it'll only do lint tests. We can also use
tags like [ci-skip] in PR title or label to skip some tests.
Installing from packages.macports.org would avoid rebuilding
distributable ports after minor edits.
Travis is unlikely to ban us but if that happens we can keep only macOS
10.12 or only the lint tests (which can even be done on Linux) and
contact them to unban us.
The alternative can always be to use our own server for builds, but of
course that brings other problems to the table (mostly security) and
requires a completely different approach.
Yes, mostly security considerations. We'll have to use VMs and revert to
snapshot after every build in our own servers. Managing VMs and sending
data around securely would be painful to setup.
And yes, it would be great if mpbb sources could be shared (and
improved for both buildbot & travis at the same time). Not a
requirement, but if one part can benefit from the other, that would be
great.
Mojca
--
Best regards,
Zero King