Uh oh!
There was an error while loading. Please reload this page.
Speed up non-release builds - #286
Conversation
kennknowles
commented
May 4, 2016
R: @davorbonaci |
30e8c32 to
8436056Compare| </goals> | ||
| </execution> | ||
| <execution> | ||
| <id>default-test-jar</id> |
There was a problem hiding this comment.
I think we need to keep this in the default profile since we have modules that depend on others modules test jars because of re-used testing utilities. Will need to factor those out to separate testing packages.
There was a problem hiding this comment.
IMO such a dependency is a bug, for sure. Factoring out into a test utility is best, if possible. But here is a case where we cannot:
- class A depends on SDK main
- SDK test depends on class A
- non-SDK test depends on class A
In this case, class A must be in SDK main. I think many things fall into this category.
There was a problem hiding this comment.
The main use we need to think about for the long term is the way that SDKs offer their own unit tests as test suites for runners. We may refactor but for now it makes sense for everything under sdks to offer the test jar.
lukecwik
commented
May 4, 2016
looks good so far, several other pom files that could benefit from this as well |
lukecwik
commented
May 4, 2016
R: @lukecwik |
lukecwik
commented
May 4, 2016
Did you want to limit the scope of this change to what you have here or did you want to go through the other poms? |
kennknowles
commented
May 4, 2016
I'd like to get this in first. A number of these changes actually change it for everyone since they change parent |
kennknowles
commented
May 4, 2016
One branch of the Travis run seems to have hung downloading deps. |
lukecwik
commented
May 4, 2016
LGTM, please self merge |
c5a0d0a to
119812aComparedavorbonaci
commented
May 5, 2016
As far as I can see, this has reduced the build time from 15 minutes to 13 minutes (excluding outlays). Not a great win, IMO, with the given complexity. Perhaps we should chat separately if this is worth it. |
kennknowles
commented
May 5, 2016
We should just continue to find things we can omit. Certainly compile-and-test of 13 minutes is ridiculous for this project. |
kennknowles
commented
May 5, 2016
I didn't dig into too many modules, but So, taking all timings with a grain of salt, for the SDK this change reduced overall time by ~40% and reduced non-testing time by ~75%. I hope we can improve it further, and make similar improvements to all modules. We should also aim to reduce the testing time. This was a run with default settings, and it looked like |
Be sure to do all of the following to help us incorporate your contribution
quickly and easily:
[BEAM-<Jira issue #>] Description of pull requestmvn clean verify. (Even better, enableTravis-CI on your fork and ensure the whole test matrix passes).
<Jira issue #>in the title with the actual Jira issuenumber, if there is one.
Individual Contributor License Agreement.
We can probably take this further, but this is a first step at isolating simple command-line
mvn verifyandmvn installfrom the extra artifacts that are important for release building & testing. We should keep the longer build for post-commit, maybe pre-commit, but definitely not for devs on the command line.