.vsts-ci.yml 5.55 KB
Newer Older
1
variables:
2
  PYTHON_VERSION: 3.7
3
  CONDA_ENV: test-env
4
5
6
7
resources:
  containers:
  - container: ubuntu1404
    image: lightgbm/vsts-agent:ubuntu-14.04
8
jobs:
Guolin Ke's avatar
Guolin Ke committed
9
###########################################
10
- job: Linux
Guolin Ke's avatar
Guolin Ke committed
11
###########################################
12
13
  variables:
    COMPILER: gcc
14
15
  pool:
    vmImage: 'ubuntu-16.04'
16
  container: ubuntu1404
17
  strategy:
18
    maxParallel: 6
Guolin Ke's avatar
Guolin Ke committed
19
20
21
22
23
    matrix:
      regular:
        TASK: regular
      sdist:
        TASK: sdist
24
        PYTHON_VERSION: 3.5
Guolin Ke's avatar
Guolin Ke committed
25
26
      bdist:
        TASK: bdist
27
28
29
30
31
32
33
34
35
        PYTHON_VERSION: 3.6
      inference:
        TASK: if-else
      mpi_source:
        TASK: mpi
        METHOD: source
        PYTHON_VERSION: 2.7
      gpu_source:
        TASK: gpu
Guolin Ke's avatar
Guolin Ke committed
36
        METHOD: source
37
        PYTHON_VERSION: 3.6
Guolin Ke's avatar
Guolin Ke committed
38
  steps:
39
  - script: |
40
      echo "##vso[task.setvariable variable=HOME_DIRECTORY]$AGENT_HOMEDIRECTORY"
41
      echo "##vso[task.setvariable variable=BUILD_DIRECTORY]$BUILD_SOURCESDIRECTORY"
42
43
      echo "##vso[task.setvariable variable=OS_NAME]linux"
      echo "##vso[task.setvariable variable=AZURE]true"
44
      echo "##vso[task.setvariable variable=LGB_VER]$(head -n 1 VERSION.txt)"
Nikita Titov's avatar
Nikita Titov committed
45
46
      echo "##vso[task.prependpath]$CONDA/bin"
      AMDAPPSDK_PATH=$BUILD_SOURCESDIRECTORY/AMDAPPSDK
47
48
49
50
51
      echo "##vso[task.setvariable variable=AMDAPPSDK_PATH]$AMDAPPSDK_PATH"
      LD_LIBRARY_PATH=$AMDAPPSDK_PATH/lib/x86_64:$LD_LIBRARY_PATH
      echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$LD_LIBRARY_PATH"
      echo "##vso[task.setvariable variable=OPENCL_VENDOR_PATH]$AMDAPPSDK_PATH/etc/OpenCL/vendors"
    displayName: 'Set variables'
52
  - bash: $(Build.SourcesDirectory)/.ci/setup.sh
53
    displayName: Setup
54
  - bash: $(Build.SourcesDirectory)/.ci/test.sh
55
    displayName: Test
Nikita Titov's avatar
Nikita Titov committed
56
  - task: PublishBuildArtifacts@1
57
    condition: and(succeeded(), in(variables['TASK'], 'regular', 'sdist', 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
Nikita Titov's avatar
Nikita Titov committed
58
59
60
61
    inputs:
      pathtoPublish: '$(Build.ArtifactStagingDirectory)'
      artifactName: PackageAssets
      artifactType: container
Guolin Ke's avatar
Guolin Ke committed
62
###########################################
63
- job: MacOS
Guolin Ke's avatar
Guolin Ke committed
64
###########################################
65
  variables:
66
    COMPILER: clang
67
68
69
70
  pool:
    vmImage: 'macOS-10.13'
  strategy:
    maxParallel: 3
Guolin Ke's avatar
Guolin Ke committed
71
72
73
    matrix:
      regular:
        TASK: regular
74
        PYTHON_VERSION: 3.6
Guolin Ke's avatar
Guolin Ke committed
75
76
      sdist:
        TASK: sdist
77
        PYTHON_VERSION: 3.5
Guolin Ke's avatar
Guolin Ke committed
78
79
80
      bdist:
        TASK: bdist
  steps:
81
  - script: |
82
      echo "##vso[task.setvariable variable=HOME_DIRECTORY]$AGENT_HOMEDIRECTORY"
83
      echo "##vso[task.setvariable variable=BUILD_DIRECTORY]$BUILD_SOURCESDIRECTORY"
84
85
      echo "##vso[task.setvariable variable=OS_NAME]macos"
      echo "##vso[task.setvariable variable=AZURE]true"
86
      echo "##vso[task.setvariable variable=LGB_VER]$(head -n 1 VERSION.txt)"
Nikita Titov's avatar
Nikita Titov committed
87
88
89
      CONDA=$AGENT_HOMEDIRECTORY/miniconda
      echo "##vso[task.setvariable variable=CONDA]$CONDA"
      echo "##vso[task.prependpath]$CONDA/bin"
90
      echo "##vso[task.setvariable variable=JAVA_HOME]$JAVA_HOME_8_X64"
91
    displayName: 'Set variables'
92
  - bash: $(Build.SourcesDirectory)/.ci/setup.sh
93
    displayName: Setup
94
  - bash: $(Build.SourcesDirectory)/.ci/test.sh
95
    displayName: Test
Guolin Ke's avatar
Guolin Ke committed
96
  - task: PublishBuildArtifacts@1
97
    condition: and(succeeded(), in(variables['TASK'], 'regular', 'sdist', 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
Guolin Ke's avatar
Guolin Ke committed
98
99
100
101
102
    inputs:
      pathtoPublish: '$(Build.ArtifactStagingDirectory)' 
      artifactName: PackageAssets
      artifactType: container
###########################################
103
- job: Windows
Guolin Ke's avatar
Guolin Ke committed
104
###########################################
105
106
107
108
  pool:
    vmImage: 'vs2017-win2016'
  strategy:
    maxParallel: 3
Guolin Ke's avatar
Guolin Ke committed
109
110
111
    matrix:
      regular:
        TASK: regular
112
        PYTHON_VERSION: 3.5
Guolin Ke's avatar
Guolin Ke committed
113
114
115
116
117
      sdist:
        TASK: sdist
        PYTHON_VERSION: 2.7
      bdist:
        TASK: bdist
118
        PYTHON_VERSION: 3.6
Guolin Ke's avatar
Guolin Ke committed
119
  steps:
Nikita Titov's avatar
Nikita Titov committed
120
121
122
123
  - powershell: Write-Host "##vso[task.prependpath]$env:CONDA\Scripts"
    displayName: Enable conda
  - script: |
      conda update -q -y conda
124
      conda create -q -y -n %CONDA_ENV% python=%PYTHON_VERSION% matplotlib numpy pandas psutil pytest python-graphviz scikit-learn scipy
Nikita Titov's avatar
Nikita Titov committed
125
      cmd /c "activate %CONDA_ENV% & powershell -ExecutionPolicy Bypass -File %BUILD_SOURCESDIRECTORY%/.ci/test_windows.ps1"
126
    displayName: Test
Guolin Ke's avatar
Guolin Ke committed
127
  - task: PublishBuildArtifacts@1
128
    condition: and(succeeded(), in(variables['TASK'], 'regular', 'sdist', 'bdist'), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
Guolin Ke's avatar
Guolin Ke committed
129
    inputs:
130
      pathtoPublish: '$(Build.ArtifactStagingDirectory)'
Guolin Ke's avatar
Guolin Ke committed
131
132
      artifactName: PackageAssets
      artifactType: container
Guolin Ke's avatar
Guolin Ke committed
133

134
###########################################
135
- job: Package
136
###########################################
Guolin Ke's avatar
Guolin Ke committed
137
138
139
140
  dependsOn:
  - Linux
  - MacOS
  - Windows
141
  condition: and(succeeded(), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
142
143
  pool:
    vmImage: 'vs2017-win2016'
Guolin Ke's avatar
Guolin Ke committed
144
145
146
147
148
149
150
151
  steps:
  # Download all agent packages from all previous phases
  - task: DownloadBuildArtifacts@0
    displayName: Download package assets
    inputs:
      artifactName: PackageAssets
      downloadPath: $(Build.SourcesDirectory)/binaries
  - script: |
152
153
154
155
156
157
158
      python %BUILD_SOURCESDIRECTORY%/.nuget/create_nuget.py %BUILD_SOURCESDIRECTORY%/binaries/PackageAssets
    displayName: 'Create NuGet configuration files'
  - task: NuGetCommand@2
    inputs:
      command: pack
      packagesToPack: '$(Build.SourcesDirectory)/.nuget/*.nuspec'
      packDestination: '$(Build.ArtifactStagingDirectory)'
Guolin Ke's avatar
Guolin Ke committed
159
160
  - task: PublishBuildArtifacts@1
    inputs:
161
      pathtoPublish: '$(Build.ArtifactStagingDirectory)'
162
      artifactName: NuGet
Guolin Ke's avatar
Guolin Ke committed
163
      artifactType: container