-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adjust coverage of Travis builds #30768
Conversation
Attempt to get in all the configurations we really care about in PR tests. Max and Min versions of supported compilers. A mix of Curses and Tiles/Sound builds. A mix of Make and CMake builds. Localization disabled. The most popular (Tiles/Sound) Mac and Windows builds. Address sanitization enabled on latest GCC and Clang. Clang-tidy build. Finally, round out all the remaining supported compiler versions only on master builds, along with the somewhat obscure Mingw-w64 Terminal build.
@jbytheway I'm a little confused how the clang 8 build ever worked. |
The |
I like the option of replacing the gcc 5.4 with a clang build. Good choice. |
Aha, I'm a little fuzzy on the reference thing since the travis documentation doesn't really go into it, I think because it's just a YAML feature. I did reorder them. My only concern here is that I'm leaving win/curses uncovered, and we JUST had a win/curses specific failure. A more minor thing is I'm thinking about splitting off one more stage so single PRs can't monopolize the whole worker pool (5 workers), probably make it 1/3/4 I'm still unhappy about the number of builds, it's way too many. |
Jenkins rebuild. |
Failed mingw build, but it's unrelated to this issue.
|
Summary
SUMMARY: None
Purpose of change
The time spent in Travis builds has been climbing over time, delaying feedback for PR authors.
Also, we haven't reexamined our coverage of various elements in a while, so we had some missing elements.
While I was at it, more solidly enumerated just what we're testing in each build.
Describe the solution
Attempt to get in all the configurations we really care about in PR tests.
Max and Min versions of supported compilers.
A mix of Curses and Tiles/Sound builds.
A mix of Make and CMake builds.
Localization disabled.
The most popular (Tiles/Sound) Mac and Windows builds.
Address sanitization enabled on latest GCC and Clang.
Clang-tidy build.
Finally, round out all the remaining supported compiler versions only on master builds, along with the somewhat obscure Mingw-w64 Terminal build.
Replaced the no-install GCC 5.4 target with a Clang target, the goal is to get faster feedback to PR authors about obvious errors (rather than obscure ones that rely on specific compilers to trigger), and Clang builds are faster, even after accounting for time to install Clang. This also booted one build off the PR list, which means PR builds as a whole get significantly faster.
Alternatives
There are a basically unlimited number of ways to try and get full coverage here.