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

145
###########################################
146
- job: Package
147
###########################################
Guolin Ke's avatar
Guolin Ke committed
148
149
150
151
  dependsOn:
  - Linux
  - MacOS
  - Windows
152
  condition: and(succeeded(), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
153
154
  pool:
    vmImage: 'vs2017-win2016'
Guolin Ke's avatar
Guolin Ke committed
155
156
157
158
159
160
161
162
  steps:
  # Download all agent packages from all previous phases
  - task: DownloadBuildArtifacts@0
    displayName: Download package assets
    inputs:
      artifactName: PackageAssets
      downloadPath: $(Build.SourcesDirectory)/binaries
  - script: |
163
164
165
166
167
168
169
      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
170
171
  - task: PublishBuildArtifacts@1
    inputs:
172
      pathtoPublish: '$(Build.ArtifactStagingDirectory)'
173
      artifactName: NuGet
Guolin Ke's avatar
Guolin Ke committed
174
      artifactType: container
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
  - task: GitHubRelease@0
    displayName: 'Create GitHub Release'
    condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/v'))
    inputs:
      gitHubConnection: guolinke
      repositoryName: '$(Build.Repository.Name)'
      action: 'create'
      target: '$(Build.SourceVersion)'
      tagSource: 'auto'
      title: '$(Build.SourceBranchName)'
      assets: |
        $(Build.SourcesDirectory)/binaries/PackageAssets/*
        $(Build.ArtifactStagingDirectory)/*.nupkg
      assetUploadMode: 'delete'
      isDraft: true
      isPreRelease: false
Nikita Titov's avatar
Nikita Titov committed
191
      addChangeLog: true