variables: PYTHON_VERSION: 3.6 CONDA_ENV: test-env phases: ########################################### - phase: Linux ########################################### queue: name: 'Hosted Linux Preview' parallel: 9 matrix: regular: TASK: regular mpi: TASK: mpi PYTHON_VERSION: 2.7 pylint: TASK: pylint inference: TASK: if-else sdist: TASK: sdist PYTHON_VERSION: 3.4 bdist: TASK: bdist PYTHON_VERSION: 3.5 gpu_1: TASK: gpu METHOD: source gpu_2: TASK: gpu METHOD: pip steps: - task: CondaEnvironment@0 inputs: environmentName: $(CONDA_ENV) packageSpecs: 'python=$(PYTHON_VERSION)' createOptions: '-q' - script: | sudo apt-get update export LGB_VER=$(head -n 1 VERSION.txt) export AMDAPPSDK=$HOME/AMDAPPSDK export LD_LIBRARY_PATH="$AMDAPPSDK/lib/x86_64:$LD_LIBRARY_PATH" export OPENCL_VENDOR_PATH=$AMDAPPSDK/etc/OpenCL/vendors if [[ $TASK == "mpi" ]]; then sudo apt-get install -y libopenmpi-dev openmpi-bin fi if [[ $TASK == "gpu" ]]; then sudo apt-get install --no-install-recommends -y ocl-icd-opencl-dev libboost-dev libboost-system-dev libboost-filesystem-dev wget -q https://github.com/Microsoft/LightGBM/releases/download/v2.0.12/AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2 tar -xjf AMD-APP-SDK*.tar.bz2 mkdir -p $OPENCL_VENDOR_PATH sh AMD-APP-SDK*.sh --tar -xf -C $AMDAPPSDK mv $AMDAPPSDK/lib/x86_64/sdk/* $AMDAPPSDK/lib/x86_64/ echo libamdocl64.so > $OPENCL_VENDOR_PATH/amdocl64.icd fi bash .vsts-ci/test.sh - task: PublishBuildArtifacts@1 condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/')) inputs: pathtoPublish: '$(Build.ArtifactStagingDirectory)' artifactName: PackageAssets artifactType: container ########################################### - phase: MacOS ########################################### queue: name: 'Hosted macOS Preview' parallel: 3 matrix: regular: TASK: regular PYTHON_VERSION: 2.7 sdist: TASK: sdist PYTHON_VERSION: 3.4 bdist: TASK: bdist PYTHON_VERSION: 3.5 steps: - script: | brew install libomp brew reinstall cmake wget -O conda.sh https://repo.continuum.io/miniconda/Miniconda${PYTHON_VERSION:0:1}-latest-MacOSX-x86_64.sh bash conda.sh -b -p $HOME/miniconda export PATH=$HOME/miniconda/bin:$PATH conda config --set always_yes yes --set changeps1 no conda create -q -n $CONDA_ENV python=$PYTHON_VERSION source activate $CONDA_ENV export LGB_VER=$(head -n 1 VERSION.txt) bash .vsts-ci/test.sh - task: PublishBuildArtifacts@1 condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/')) inputs: pathtoPublish: '$(Build.ArtifactStagingDirectory)' artifactName: PackageAssets artifactType: container ########################################### - phase: Windows ########################################### queue: name: 'Hosted VS2017' parallel: 3 matrix: regular: TASK: regular PYTHON_VERSION: 3.5 sdist: TASK: sdist PYTHON_VERSION: 2.7 bdist: TASK: bdist PYTHON_VERSION: 3.6 steps: - task: CondaEnvironment@0 inputs: updateConda: true environmentName: $(CONDA_ENV) packageSpecs: 'python=$(PYTHON_VERSION) numpy nose scipy scikit-learn pandas matplotlib python-graphviz pytest' createOptions: '-q' - powershell: $(Build.SourcesDirectory)/.vsts-ci/test_windows.ps1 displayName: Test - task: PublishBuildArtifacts@1 condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/')) inputs: pathtoPublish: '$(Build.ArtifactStagingDirectory)' artifactName: PackageAssets artifactType: container ########################################### - phase: Package ########################################### dependsOn: - Linux - MacOS - Windows condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/')) queue: name: 'Hosted VS2017' steps: # Download all agent packages from all previous phases - task: DownloadBuildArtifacts@0 displayName: Download package assets inputs: artifactName: PackageAssets downloadPath: $(Build.SourcesDirectory)/binaries - powershell: | $client = new-object System.Net.WebClient $client.DownloadFile("https://dist.nuget.org/win-x86-commandline/latest/nuget.exe", "$(Build.SourcesDirectory)/.nuget/nuget.exe") displayName: 'Download NuGet application' - script: | cd %BUILD_SOURCESDIRECTORY%/.nuget python create_nuget.py %BUILD_SOURCESDIRECTORY%/binaries/PackageAssets nuget.exe pack LightGBM.nuspec xcopy *.nupkg %BUILD_ARTIFACTSTAGINGDIRECTORY% displayName: 'Build NuGet package' - task: PublishBuildArtifacts@1 inputs: pathtoPublish: '$(Build.ArtifactStagingDirectory)' artifactName: Nuget artifactType: container