Further improvements and savings in Jenkins pipeline (#5904)
* Publish artifacts only on the master and release branches * Build CUDA only for Compute Capability 7.5 when building PRs * Run all Windows jobs in a single worker image * Build nightly XGBoost4J SNAPSHOT JARs with Scala 2.12 only * Show skipped Python tests on Windows * Make Graphviz optional for Python tests * Add back C++ tests * Unstash xgboost_cpp_tests * Fix label to CUDA 10.1 * Install cuPy for CUDA 10.1 * Install jsonschema * Address reviewer's feedback
This commit is contained in:
committed by
GitHub
parent
6c0c87216f
commit
ac9136ee49
@@ -20,16 +20,5 @@ cd jvm-packages
|
||||
# Deploy to S3 bucket xgboost-maven-repo
|
||||
mvn --no-transfer-progress package deploy -P release-to-s3 -Dspark.version=${spark_version} -DskipTests
|
||||
|
||||
# Compile XGBoost4J with Scala 2.11 too
|
||||
mvn clean
|
||||
# Rename artifactId of all XGBoost4J packages with suffix _2.11
|
||||
sed -i -e 's/<artifactId>xgboost\(.*\)_[0-9\.]\+/<artifactId>xgboost\1_2.11/' $(find . -name pom.xml)
|
||||
# Modify scala.version and scala.binary.version fields
|
||||
sed -i -e 's/<scala\.version>[0-9\.]\+/<scala.version>2.11.12/' $(find . -name pom.xml)
|
||||
sed -i -e 's/<scala\.binary\.version>[0-9\.]\+/<scala.binary.version>2.11/' $(find . -name pom.xml)
|
||||
|
||||
# Re-build and deploy
|
||||
mvn --no-transfer-progress package deploy -P release-to-s3 -Dspark.version=${spark_version} -DskipTests
|
||||
|
||||
set +x
|
||||
set +e
|
||||
|
||||
18
tests/ci_build/win64_conda_env.yml
Normal file
18
tests/ci_build/win64_conda_env.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
name: win64_env
|
||||
channels:
|
||||
- conda-forge
|
||||
dependencies:
|
||||
- python=3.7
|
||||
- numpy
|
||||
- scipy
|
||||
- matplotlib
|
||||
- scikit-learn
|
||||
- pandas
|
||||
- pytest
|
||||
- python-graphviz
|
||||
- boto3
|
||||
- hypothesis
|
||||
- jsonschema
|
||||
- pip
|
||||
- pip:
|
||||
- cupy-cuda101
|
||||
@@ -1,10 +1,13 @@
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import pytest
|
||||
sys.path.append("tests/python")
|
||||
import testing as tm
|
||||
import test_demos as td # noqa
|
||||
|
||||
|
||||
@pytest.mark.skipif(**tm.no_cupy())
|
||||
def test_data_iterator():
|
||||
script = os.path.join(td.PYTHON_DEMO_DIR, 'data_iterator.py')
|
||||
cmd = ['python', script]
|
||||
|
||||
@@ -15,7 +15,7 @@ except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
pytestmark = pytest.mark.skipif(**tm.no_matplotlib())
|
||||
pytestmark = pytest.mark.skipif(**tm.no_multiple(tm.no_matplotlib(), tm.no_graphviz()))
|
||||
|
||||
|
||||
dpath = 'demo/data/'
|
||||
|
||||
@@ -437,6 +437,7 @@ def test_sklearn_api_gblinear():
|
||||
|
||||
|
||||
@pytest.mark.skipif(**tm.no_matplotlib())
|
||||
@pytest.mark.skipif(**tm.no_graphviz())
|
||||
def test_sklearn_plotting():
|
||||
from sklearn.datasets import load_iris
|
||||
|
||||
|
||||
@@ -98,6 +98,26 @@ def no_json_schema():
|
||||
return {'condition': True, 'reason': reason}
|
||||
|
||||
|
||||
def no_graphviz():
|
||||
reason = 'graphviz is not installed'
|
||||
try:
|
||||
import graphviz # noqa
|
||||
return {'condition': False, 'reason': reason}
|
||||
except ImportError:
|
||||
return {'condition': True, 'reason': reason}
|
||||
|
||||
|
||||
def no_multiple(*args):
|
||||
condition = False
|
||||
reason = ''
|
||||
for arg in args:
|
||||
condition = (condition or arg['condition'])
|
||||
if arg['condition']:
|
||||
reason = arg['reason']
|
||||
break
|
||||
return {'condition': condition, 'reason': reason}
|
||||
|
||||
|
||||
# Contains a dataset in numpy format as well as the relevant objective and metric
|
||||
class TestDataset:
|
||||
def __init__(self, name, get_dataset, objective, metric
|
||||
|
||||
Reference in New Issue
Block a user