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

[CI] Refactor Jenkins CI pipeline + migrate all Linux tests to Jenkins #4401

Merged
merged 42 commits into from
Apr 27, 2019

Conversation

hcho3
Copy link
Collaborator

@hcho3 hcho3 commented Apr 25, 2019

See #4234 for details.

Screen Shot 2019-04-25 at 2 07 49 AM

Note that builds (compilation) are significantly faster because

  1. They use C5 instances with faster CPU cores;
  2. Build environment setup is cached using Docker containers, so we don't need to run package installation gazillion times

@hcho3
Copy link
Collaborator Author

hcho3 commented Apr 25, 2019

@CodingCat Can you look at this? In particular, I'd like to seek your feedback to the cross-version checks, where XGBoost4J JARs are tested against JDK 8, 11, and 12. See https://xgboost-ci.net/blue/organizations/jenkins/hcho3-xgboost-ci-test/detail/refactor_jenkins/107/pipeline/203 for an example of JVM test. (Note: Spark tests are only run for JDK 8 for now)

@hcho3 hcho3 changed the title [CI] Refactor Jenkins CI pipeline + migrate tests to Jenkins [CI] Refactor Jenkins CI pipeline + migrate all Linux tests to Jenkins Apr 25, 2019
Jenkinsfile Show resolved Hide resolved
@CodingCat
Copy link
Member

LGTM for jvm-packages part

Copy link
Member

@terrytangyuan terrytangyuan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@hcho3
Copy link
Collaborator Author

hcho3 commented Apr 25, 2019

@CodingCat FYI, this PR is adding a dummy project named xgboost4j-tester under jvm-packages. This is needed so that I can run code from xgboost4j-example

@CodingCat
Copy link
Member

@CodingCat FYI, this PR is adding a dummy project named xgboost4j-tester under jvm-packages. This is needed so that I can run code from xgboost4j-example

that's fine, we can use it for more integration test in future

@hcho3
Copy link
Collaborator Author

hcho3 commented Apr 26, 2019

TODO: write a short doc explaining what tests/ci_build/ci_build.sh does

@hcho3 hcho3 force-pushed the refactor_jenkins branch 2 times, most recently from defeb50 to 8d81b24 Compare April 26, 2019 02:00
Copy link
Member

@trivialfis trivialfis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what happened in sanitizer yet. But I'm hoping not to disable leak sanitizer.

@hcho3
Copy link
Collaborator Author

hcho3 commented Apr 26, 2019

@trivialfis I found the fix for leak detector: google/sanitizers#764. I need to add PTRACE capability to docker runs.

@hcho3
Copy link
Collaborator Author

hcho3 commented Apr 26, 2019

Re-basing against the latest master to fix Windows tests

Copy link
Member

@trivialfis trivialfis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's gonna be awesome. Thanks!

Copy link
Member

@RAMitchell RAMitchell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks amazing thanks @hcho3

@hcho3
Copy link
Collaborator Author

hcho3 commented Apr 26, 2019

Running two Spark jobs in a row resulted in #4406, so I'm disabling the second Spark integration test for now

@hcho3
Copy link
Collaborator Author

hcho3 commented Apr 26, 2019

Will try to fix Mac CMake build issue in a follow-up PR

@hcho3 hcho3 merged commit ea850ec into dmlc:master Apr 27, 2019
@hcho3 hcho3 deleted the refactor_jenkins branch April 27, 2019 01:39
@hcho3
Copy link
Collaborator Author

hcho3 commented Apr 27, 2019

Merged. Thanks everyone!

CodingCat pushed a commit to CodingCat/xgboost that referenced this pull request Apr 27, 2019
dmlc#4401)

* All Linux tests are now in Jenkins CI
* Tests are now de-coupled from builds. We can now build XGBoost with one version of CUDA/JDK and test it with another version of CUDA/JDK
* Builds (compilation) are significantly faster because 1) They use C5 instances with faster CPU cores; and 2) build environment setup is cached using Docker containers
@lock lock bot locked as resolved and limited conversation to collaborators Jul 26, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants