Right now our .appveyor.yml and .travis.yml are not using the "-k" make flag. That means that once it encounters an error, it stops building. In general, we would prefer our CI to keep trying to build for a long as it can, so that we can see all of the warnings and errors that are produced. This will help us save round trips between the developer and the CI process.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
Trac: Description: Right now our .appveyor.yml is not using the "-k" make flag. That means that once it encounters an error, it stops building. In general, we would prefer our CI to keep trying to build for a long as it can, so that we can see all of the warnings and errors that are produced. This will help us save round trips between the developer and the CI process.
to
Right now our .appveyor.yml and .travis.yml are not using the "-k" make flag. That means that once it encounters an error, it stops building. In general, we would prefer our CI to keep trying to build for a long as it can, so that we can see all of the warnings and errors that are produced. This will help us save round trips between the developer and the CI process. Summary: Appveyor should use "make -k" to Appveyor and Travis should use "make -k"
I think we should backport this change to 0.2.9 and later for consistency.
Did you want to do the backport, rl1987?
If not, I'm happy to do it when I review.
You might find the new "git-merge-forward.sh -t (test-branch-prefix)" in #31314 (moved) useful.
(But this change will cause a few conflicts, unfortunately.)
I've made initial branches as ticket31372_029 for travis and ticket31372_appveyor_035 for appveyor.
For Travis, I just used the MAKEFLAGS variable, so that merging forward will be simpler.
I have also made a branch with a deliberate syntax error in mainloop.c so that we can make sure that make -k is working as in tended. That one has a PR at https://github.com/torproject/tor/pull/1364 -- do not merge it.
CI for the real branches has passed. For the intended-to-fail branch, I have confirmed that the build continues after the first failure, and generates more output (which is what we wanted make -k to do).
Trac: Status: needs_revision to needs_review Actualpoints: N/Ato .1
I like this idea, but is there a way to summarise the errors at the end of the CI output?
Otherwise, we have to search through thousands of lines of output for the error.
I like make -k || make -k and I'm happy with the ugliness, because almost no-one will see it.
(And we can explain it in a comment, and perhaps with echo "Re-running make to show errors".)
But I am also happy to change my process, and do a search.
What do you think would be easier for us, and for new contributors?
I'll let you decide?
It's probably also worth mentioning that this change will slow down failures. I think that's ok, but I sent an email to the network team list with other ways to speed up CI.
I think that the search approach might be better: we have to do that anyway for jenkins builders, and it's a good idea to get in practice. Do you think that's plausible? If so, let's merge_ready this.
It's probably also worth mentioning that this change will slow down failures. I think that's ok, but I sent an email to the network team list with other ways to speed up CI.
Thanks! I also think it's okay.
The tradeoff is that we find out later when there is compilation failure, but we learn everything about the compilation failure and we don't have to do multiple back-and-forth steps. Learning about a success is just as slow as it was before.
I know that Appveyor will report failure as soon as one builder has failed. Does travis do the same?