129 lines
4.3 KiB
YAML
129 lines
4.3 KiB
YAML
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','igraph','knitr','rmarkdown')"
|
|
cmd.exe /c "R.exe -q -e ""install.packages($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
|