Hi all,

I'd like to discuss one Travis feature here.

Currently all Travis steps described in .travis.yml are executed
regardless whether something fails or not.

The problem is that if any step in the middle fails then it's quite
hard to find the issue as the logs are usually very long.
For example the yast2 log has over 4500 lines [1].

The question is whether we want to switch to the fail fast principle [2],
so the Travis build would stop at the first failure and you could easily find 
it at
the end of the log. (Travis does not support failing fast out of box, but there 
is a
workaround for this [3].)


Summary:

  Current state (always run all steps)

  + can find multiple issues in a single run
  - too long log for finding the issues
  - may report false positives for dependent steps
    (e.g. if compilation fails then obviously the tests fail too)
  - longer build times


  Fail fast

  + easy to find the failure
  + failed builds finish faster
  - you can only see/fix one issue at a time, more iterations for fixing all
    issues is needed (e.g. you fix a rubocop style issue, but then the testsuite
    does not pass, after fixing it the install step fails because of a missing
    change in Makefile... each fix means a new commit and a new build)


What do you think about it? Should we change the Travis behavior?




[1] https://travis-ci.org/yast/yast-yast2
[2] http://en.wikipedia.org/wiki/Fail-fast
[3] https://github.com/travis-ci/travis-ci/issues/1066#issuecomment-32415453


--

Best Regards

Ladislav Slezák
Yast Developer
------------------------------------------------------------------------
SUSE LINUX, s.r.o.                              e-mail: [email protected]
Lihovarská 1060/12                              tel: +420 284 028 960
190 00 Prague 9                                 fax: +420 284 028 951
Czech Republic                                  http://www.suse.cz/
-- 
To unsubscribe, e-mail: [email protected]
To contact the owner, e-mail: [email protected]

Reply via email to