Re: Reducing redundant build at Travis?
- From
Jeff King <peff@peff.net>
- Date
- Jul 14, 2017, 15:32 UTC
- Message-ID
- <20170714153224.6qnupcsa3pkig76k@sigill.intra.peff.net>
- In-Reply-To
- <xmqqbmonrrvr.fsf@gitster.mtv.corp.google.com>
On Fri, Jul 14, 2017 at 07:54:16AM -0700, Junio C Hamano wrote:
Show 14 quoted lines
> > The "git test" script[1] uses this strategy with git-notes as the > > storage, and I've found it quite useful. I don't think we can rely on > > git-notes, but I think Travis gives us some storage options. Even just a > > best-effort cache directory would probably be sufficient (this is an > > optimization, after all). > > We do seem to use some persistence to order prove tests already, but > I do not think it helps the common case, where my end-of-day push > pushes out 'maint' and 'v2.13.3' at the same time, because the push > is made with "git push --follow-tags $there maint master next pu" > and the new tag happens to be at 'maint'. It would be nice if > Travis runs were sequential, but I often observe that it creates > jobs for these multiple branches and tags pushed at the same time, > and start running a few of them.
Ah, right, I didn't think about how these are racing. You'd need storage which allows some kind of atomic operation to "claim" the tree as a work-in-progress (and anybody who loses the race to get the lock would have to spin waiting for the winner to tell them the real status).
I don't know if Travis's cache storage is up to that challenge. We could probably build such a lock on top of third-party storage, but things are rapidly getting more complex.
-Peff