environment: R_ARCH: x64 USE_RTOOLS: true matrix: - target: msvc ver: 2013 generator: "Visual Studio 12 2013 Win64" configuration: Release - target: msvc ver: 2015 generator: "Visual Studio 14 2015 Win64" configuration: Debug - target: msvc ver: 2015 generator: "Visual Studio 14 2015 Win64" configuration: Release - target: mingw generator: "Unix Makefiles" - target: jvm - target: rmsvc ver: 2015 generator: "Visual Studio 14 2015 Win64" configuration: Release - target: rmingw generator: "Unix Makefiles" #matrix: # fast_finish: true platform: - x64 install: - git submodule update --init --recursive # MinGW - set PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH% - gcc -v - ls -l C:\ # Miniconda2 - set PATH=;C:\Miniconda-x64;C:\Miniconda-x64\Scripts;%PATH% - where python - python --version # do python build for mingw and one of the msvc jobs - set DO_PYTHON=off - if /i "%target%" == "mingw" set DO_PYTHON=on - if /i "%target%_%ver%_%configuration%" == "msvc_2015_Release" set DO_PYTHON=on - if /i "%DO_PYTHON%" == "on" conda install -y numpy scipy pandas matplotlib nose scikit-learn graphviz python-graphviz # R: based on https://github.com/krlmlr/r-appveyor - ps: | if($env:target -eq 'rmingw' -or $env:target -eq 'rmsvc') { #$ErrorActionPreference = "Stop" Invoke-WebRequest http://raw.github.com/krlmlr/r-appveyor/master/scripts/appveyor-tool.ps1 -OutFile "$Env:TEMP\appveyor-tool.ps1" Import-Module "$Env:TEMP\appveyor-tool.ps1" Bootstrap $DEPS = "c('data.table','magrittr','stringi','ggplot2','DiagrammeR','Ckmeans.1d.dp','vcd','testthat','lintr','knitr','rmarkdown')" cmd.exe /c "R.exe -q -e ""install.packages($DEPS, repos='$CRAN', type='both')"" 2>&1" $BINARY_DEPS = "c('XML','igraph')" cmd.exe /c "R.exe -q -e ""install.packages($BINARY_DEPS, repos='$CRAN', type='win.binary')"" 2>&1" } build_script: - cd %APPVEYOR_BUILD_FOLDER% - if /i "%target%" == "msvc" ( mkdir build_msvc%ver% && cd build_msvc%ver% && cmake .. -G"%generator%" -DCMAKE_CONFIGURATION_TYPES="Release;Debug;" && msbuild xgboost.sln ) - if /i "%target%" == "mingw" ( mkdir build_mingw && cd build_mingw && cmake .. -G"%generator%" && make -j2 ) # Python package - if /i "%DO_PYTHON%" == "on" ( cd %APPVEYOR_BUILD_FOLDER%\python-package && python setup.py install && mkdir wheel && python setup.py bdist_wheel --universal --plat-name win-amd64 -d wheel ) # R package: make + mingw standard CRAN packaging (only x64 for now) - if /i "%target%" == "rmingw" ( make Rbuild && ls -l && R.exe CMD INSTALL xgboost*.tar.gz ) # R package: cmake + VC2015 - if /i "%target%" == "rmsvc" ( mkdir build_rmsvc%ver% && cd build_rmsvc%ver% && cmake .. -G"%generator%" -DCMAKE_CONFIGURATION_TYPES="Release" -DR_LIB=ON && cmake --build . --target install --config Release ) - if /i "%target%" == "jvm" cd jvm-packages && mvn test -pl :xgboost4j test_script: - cd %APPVEYOR_BUILD_FOLDER% - if /i "%DO_PYTHON%" == "on" python -m nose tests/python # mingw R package: run the R check (which includes unit tests), and also keep the built binary package - if /i "%target%" == "rmingw" ( set _R_CHECK_CRAN_INCOMING_=FALSE&& R.exe CMD check xgboost*.tar.gz --no-manual --no-build-vignettes --as-cran --install-args=--build ) # MSVC R package: run only the unit tests - if /i "%target%" == "rmsvc" ( cd build_rmsvc%ver%\R-package && R.exe -q -e "library(testthat); setwd('tests'); source('testthat.R')" ) on_failure: # keep the whole output of R check - if /i "%target%" == "rmingw" ( 7z a failure.zip *.Rcheck\* && appveyor PushArtifact failure.zip ) artifacts: # log from R check - path: '*.Rcheck\**\*.log' name: Logs # source R-package - path: '\xgboost_*.tar.gz' name: Bits # binary R-package - path: '**\xgboost_*.zip' name: Bits # binary Python wheel package - path: '**\*.whl' name: Bits