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

138
###########################################
139
- job: Package
140
###########################################
Guolin Ke's avatar
Guolin Ke committed
141
142
143
144
  dependsOn:
  - Linux
  - MacOS
  - Windows
145
  condition: and(succeeded(), not(startsWith(variables['Build.SourceBranch'], 'refs/pull/')))
146
147
  pool:
    vmImage: 'vs2017-win2016'
Guolin Ke's avatar
Guolin Ke committed
148
149
150
151
152
153
154
155
  steps:
  # Download all agent packages from all previous phases
  - task: DownloadBuildArtifacts@0
    displayName: Download package assets
    inputs:
      artifactName: PackageAssets
      downloadPath: $(Build.SourcesDirectory)/binaries
  - script: |
156
157
158
159
160
161
162
      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
163
164
  - task: PublishBuildArtifacts@1
    inputs:
165
      pathtoPublish: '$(Build.ArtifactStagingDirectory)'
166
      artifactName: NuGet
Guolin Ke's avatar
Guolin Ke committed
167
      artifactType: container
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
  - 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
Guolin Ke's avatar
Guolin Ke committed
184
      addChangeLog: false