Source useful travis-build/lib/travis/build/bash/ scripts automatically

Some of the bash scripts in travis-build/lib/travis/build/bash/ are really useful for users, especially when logs are very verbose. For example, these jobs use travis_fold:start:, travis_fold:end:, travis_time_start, travis_time_finish and travis_nanoseconds:

and this does not:

ATM, users are required to either copy those travis-specific snippets to their own scripts, or get them from github and source them every time. Certainly, this is quite common. I get around 40k results if I search https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/templates/header.sh on google, many of them from different projects.

Therefore, I would like to propose sourcing some (or all) of these bash scripts in the user environment of the builders, so that users can create blocks and time them using the exact same functions that the builder is using. Making them available for users and hopefully adding a reference to the docs would allow for a better user experience. Moreover, I think that it would help to make a better use of concurrent jobs and stages.

Last, it would avoid users getting out-of-sync with travis, in case some of these utility functions are modified. Most of the results for https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/bash are from travis, so not many of the users that copied the snippets are aware that the sources changed.

EDIT

Alternatively to sourcing them, in case these are already available in some path inside the builders, it would really help to know the location.

Imprint