@@ -5,14 +5,24 @@ parameters:
55 pool : {}
66 customMatrixes : ' '
77 codeCoverage : false
8+ nightlyBuild : false
89 container : ' '
910
1011jobs :
1112 - job : ${{ parameters.name }}
12- ${{ if eq(parameters.codeCoverage, 'false') }} :
13+ ${{ if eq(parameters.nightlyBuild, 'true') }} :
14+ timeoutInMinutes : 20
15+ ${{ if and(eq(parameters.nightlyBuild, 'false'), eq(parameters.codeCoverage, 'false')) }} :
1316 timeoutInMinutes : 75
1417 ${{ if eq(parameters.codeCoverage, 'true') }} :
1518 timeoutInMinutes : 60
19+ variables :
20+ dotnetPath : $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet
21+ nugetFeed : https://pkgs.dev.azure.com/dnceng/public/_packaging/MachineLearning/nuget/v3/index.json
22+ nightlyBuildProjPath : $(Build.SourcesDirectory)/test/Microsoft.ML.NightlyBuild.Tests/Microsoft.ML.NightlyBuild.Tests.csproj
23+ nightlyBuildRunPath : (Build.SourcesDirectory)/bin/AnyCPU.(_configuration)/Microsoft.ML.NightlyBuild.Tests/netcoreapp2.1
24+ packageUpdaterProjPath : $(Build.SourcesDirectory)/test/Microsoft.ML.NugetPackageVersionUpdater/Microsoft.ML.NugetPackageVersionUpdater.csproj
25+ versionFilePath : $(Build.SourcesDirectory)/test/Microsoft.ML.NugetPackageVersionUpdater/latest_versions.txt
1626 strategy :
1727 matrix :
1828 ${{ if eq(parameters.customMatrixes, '') }} :
@@ -35,12 +45,27 @@ jobs:
3545 - ${{ if eq(parameters.pool.name, 'Hosted macOS High Sierra') }} :
3646 - script : brew update && brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f5b1ac99a7fba27c19cee0bc4f036775c889b359/Formula/libomp.rb && brew install mono-libgdiplus gettext && brew link gettext --force && brew link libomp --force
3747 displayName : Install build dependencies
48+ - ${{ if and( eq(parameters.nightlyBuild, 'true'), eq(parameters.name, 'Ubuntu_x64_NetCoreApp21')) }} :
49+ - bash : echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$(nightlyBuildRunPath):$LD_LIBRARY_PATH"
50+ displayName : Set LD_LIBRARY_PATH for Ubuntu to locate Native shared library in current running path
3851 - script : ${{ parameters.buildScript }} -$(_configuration) -buildArch=${{ parameters.architecture }}
3952 displayName : Build
40- - script : ${{ parameters.buildScript }} -- /t:DownloadExternalTestFiles /p:IncludeBenchmarkData=$(_includeBenchmarkData)
41- displayName : Download Benchmark Data
42- - script : ${{ parameters.buildScript }} -$(_configuration) -runtests -coverage=${{ parameters.codeCoverage }}
43- displayName : Run Tests.
53+ - ${{ if eq(parameters.nightlyBuild, 'true') }} :
54+ - script : $(dotnetPath) restore $(nightlyBuildProjPath)
55+ displayName : Restore nightly build project
56+ - script : $(dotnetPath) list $(nightlyBuildProjPath) package --source $(nugetFeed) --outdated > $(versionFilePath)
57+ displayName : List latest package versions
58+ - script : $(dotnetPath) run --project $(packageUpdaterProjPath)
59+ displayName : Update package versions for nightly build
60+ - script : $(dotnetPath) msbuild -restore $(nightlyBuildProjPath) /p:ReferenceTypeForTestFramework="Nuget" /p:Configuration=$(_configuration) /p:TargetArchitecture=${{ parameters.architecture }}
61+ displayName : Build Nightly-Build Project with latest package versions
62+ - script : ${{ parameters.buildScript }} -$(_configuration) -runnightlybuildtests
63+ displayName : Run Nightly Build Tests
64+ - ${{ if eq(parameters.nightlyBuild, 'false') }} :
65+ - script : ${{ parameters.buildScript }} -- /t:DownloadExternalTestFiles /p:IncludeBenchmarkData=$(_includeBenchmarkData)
66+ displayName : Download Benchmark Data
67+ - script : ${{ parameters.buildScript }} -$(_configuration) -runtests -coverage=${{ parameters.codeCoverage }}
68+ displayName : Run Tests.
4469 - script : $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet msbuild build/Codecoverage.proj /p:CodeCovToken=$(CODECOV_TOKEN)
4570 displayName : Upload coverage to codecov.io
4671 condition : and(succeeded(), eq(${{ parameters.codeCoverage }}, True))
77102 pathToPublish : $(Build.ArtifactStagingDirectory)
78103 artifactName : ${{ parameters.name }} $(_config_short)
79104 artifactType : container
80- - ${{ if eq(parameters.buildScript, 'build.cmd') }} :
105+ - ${{ if and( eq(parameters.nightlyBuild, 'false'), eq(parameters. buildScript, 'build.cmd') ) }} :
81106 - powershell : |
82107 $taskListOutput = & TaskList /FI "IMAGENAME eq dotnet.exe" | Out-String
83108 if ($taskListOutput.Contains("dotnet.exe"))
@@ -107,5 +132,6 @@ jobs:
107132 Remove-Item -Force -Recurse .\tmp\
108133 Write-Output "Done cleaning up binary folder..."
109134 displayName: Clean up test data
110- - script : ${{ parameters.buildScript }} -buildPackages
111- displayName : Build Packages
135+ - ${{ if eq(parameters.nightlyBuild, 'false') }} :
136+ - script : ${{ parameters.buildScript }} -buildPackages
137+ displayName : Build Packages
0 commit comments