Re: [PATCH] travis-ci: build Git during the 'script' phase
- Date: Fri, 12 Jan 2018 14:32:54 +0100
- From: SZEDER Gábor <szeder.dev@xxxxxxxxx>
- Subject: Re: [PATCH] travis-ci: build Git during the 'script' phase
On Mon, Jan 8, 2018 at 11:38 PM, Lars Schneider
>> On 08 Jan 2018, at 23:07, Junio C Hamano <gitster@xxxxxxxxx> wrote:
>> SZEDER Gábor <szeder.dev@xxxxxxxxx> writes:
>>> The reason why Travis CI does it this way and why it's a better
>>> approach than ours lies in how unsuccessful build jobs are
>>> categorized. ...
>>> This makes it easier, both for humans looking at the Travis CI web
>>> interface and for automated tools querying the Travis CI API,...
>>> A verbose commit message for such a change... but I don't know why we
>>> started with building Git in the 'before_script' phase.
>> Thanks for writing it up clearly. TBH, I didn't even realize that
>> there were meaningful distinctions between the two cases after
>> seeing that sometimes our tests were failing and sometimes erroring
> I understand the reasons for the proposed patch. However, I did this
> intentionally back then. Here is my reason:
> If `make` is successful, then I am not interested in its output.
If 'prove' is successful, then I'm not interested in its output ;)
> Look at this run: https://travis-ci.org/szeder/git/jobs/324271623
> You have to scroll down 1,406 lines to get to the test result
> output (this is usually the interesting part).
That's the just beginning of a looong list of executed test scripts in
seemingly pseudo-random order. IMHO that's very rarely the interesting
part; I, for one, am only interested in that list in exceptional cases,
e.g. while tweaking the build dependencies or the 'prove --state=...'
These are the really interesting parts of the build job's output, the
parts that do matter most of the time:
# compiler error
# which tests failed
# stray build artifacts
# (no example logs for erroring while installing dependencies, OSX
# timeout, etc.)
Note that these are all at the very end of the trace log, i.e. they are
easily accessible by one or two keystrokes (depending on whether the
keyboard has a dedicated 'End' key or requires an Fn combo), a vigorous
drag of the scrollbar, or a click on the "Scroll to end of log" circle
in the top right corner.
> If this is a valid argument for you,
I'm unconvinced :)
> would it be an option to
> pipe the verbose `make` output to a file and only print it in case
> of error (we do something similar for the tests already).
It's risky, because the build process would be completely silent for the
duration of building Git. Travis CI considers a build 'errored' if it
doesn't produce any output for 10 minutes. While building Git usually
takes much less time, transient slowdowns apparently do occur.