Skip to content
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

Merged
merged 4 commits into from
May 24, 2019
Merged

Conversation

kevingranade
Copy link
Member

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.

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.
@kevingranade kevingranade mentioned this pull request May 23, 2019
@ZhilkinSerg ZhilkinSerg added the Code: Build Issues regarding different builds and build environments label May 23, 2019
@kevingranade
Copy link
Member Author

@jbytheway I'm a little confused how the clang 8 build ever worked.

@jbytheway
Copy link
Contributor

@jbytheway I'm a little confused how the clang 8 build ever worked.

The addons: *clang8 refers back to a previously defined thing with addons: &clang8. Did you rearrange them so they were in the opposite order perhaps? That would have broken it.

@jbytheway
Copy link
Contributor

I like the option of replacing the gcc 5.4 with a clang build. Good choice.

@kevingranade
Copy link
Member Author

kevingranade commented May 23, 2019

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.

@ZhilkinSerg
Copy link
Contributor

Jenkins rebuild.

@kevingranade
Copy link
Member Author

Failed mingw build, but it's unrelated to this issue.

src/debug.cpp: In function 'std::__cxx11::string windows_version()':
src/debug.cpp:1019:32: error: unknown option after '#pragma GCC diagnostic' kind [-Werror=pragmas]
 #pragma GCC diagnostic ignored "-Wcast-function-type"
                                ^
cc1plus: all warnings being treated as errors
Makefile:768: recipe for target 'objwin/tiles/debug.o' failed
make: *** [objwin/tiles/debug.o] Error 1

@ZhilkinSerg ZhilkinSerg merged commit 447ad3f into master May 24, 2019
@kevingranade kevingranade deleted the kevingranade-build-reconfiguration branch June 6, 2019 00:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Code: Build Issues regarding different builds and build environments
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants