From 2700e97782439e8a061ef3c077b05e7985c6fa96 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 4 Nov 2020 12:48:43 -0800 Subject: [PATCH 01/14] ci testing changes --- build/vsts-ci.yml | 363 +++++++++++++++++++++++----------------------- 1 file changed, 183 insertions(+), 180 deletions(-) diff --git a/build/vsts-ci.yml b/build/vsts-ci.yml index 36874b2105..e39268e95c 100644 --- a/build/vsts-ci.yml +++ b/build/vsts-ci.yml @@ -1,5 +1,5 @@ ################################################################################ -# ML.NET's official, signed build +# ML.NET's official, signed build ################################################################################ resources: @@ -8,114 +8,114 @@ resources: image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet-8bba86b-20190314145033 phases: -################################################################################ -- phase: Linux -################################################################################ - variables: - BuildConfig: Release - OfficialBuildId: $(BUILD.BUILDNUMBER) - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 - DOTNET_MULTILEVEL_LOOKUP: 0 - queue: - name: DotNet-Build - demands: - - agent.os -equals linux - container: CentosContainer - steps: - # Only build native assets to avoid conflicts. - - script: ./build.sh -buildNative -$(BuildConfig) -skipRIDAgnosticAssets - displayName: Build +# ################################################################################ +# - phase: Linux +# ################################################################################ +# variables: +# BuildConfig: Release +# OfficialBuildId: $(BUILD.BUILDNUMBER) +# DOTNET_CLI_TELEMETRY_OPTOUT: 1 +# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 +# DOTNET_MULTILEVEL_LOOKUP: 0 +# queue: +# name: DotNet-Build +# demands: +# - agent.os -equals linux +# container: CentosContainer +# steps: +# # Only build native assets to avoid conflicts. +# - script: ./build.sh -buildNative -$(BuildConfig) -skipRIDAgnosticAssets +# displayName: Build - - task: PublishBuildArtifacts@1 - displayName: Publish Linux package assets - inputs: - pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages - artifactName: PackageAssets - artifactType: container +# - task: PublishBuildArtifacts@1 +# displayName: Publish Linux package assets +# inputs: +# pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages +# artifactName: PackageAssets +# artifactType: container -################################################################################ -- phase: MacOS -################################################################################ - variables: - BuildConfig: Release - OfficialBuildId: $(BUILD.BUILDNUMBER) - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 - DOTNET_MULTILEVEL_LOOKUP: 0 - queue: - name: Hosted macOS - steps: - - script: brew update && brew install $(Build.SourcesDirectory)/build/libomp.rb && brew link libomp --force - displayName: Install build dependencies - # Only build native assets to avoid conflicts. - - script: ./build.sh -buildNative -$(BuildConfig) -skipRIDAgnosticAssets - displayName: Build +# ################################################################################ +# - phase: MacOS +# ################################################################################ +# variables: +# BuildConfig: Release +# OfficialBuildId: $(BUILD.BUILDNUMBER) +# DOTNET_CLI_TELEMETRY_OPTOUT: 1 +# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 +# DOTNET_MULTILEVEL_LOOKUP: 0 +# queue: +# name: Hosted macOS +# steps: +# - script: brew update && brew install $(Build.SourcesDirectory)/build/libomp.rb && brew link libomp --force +# displayName: Install build dependencies +# # Only build native assets to avoid conflicts. +# - script: ./build.sh -buildNative -$(BuildConfig) -skipRIDAgnosticAssets +# displayName: Build - - task: PublishBuildArtifacts@1 - displayName: Publish macOS package assets - inputs: - pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages - artifactName: PackageAssets - artifactType: container +# - task: PublishBuildArtifacts@1 +# displayName: Publish macOS package assets +# inputs: +# pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages +# artifactName: PackageAssets +# artifactType: container -################################################################################ -- phase: Windows_x86 -################################################################################ - variables: - BuildConfig: Release - OfficialBuildId: $(BUILD.BUILDNUMBER) - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 - DOTNET_MULTILEVEL_LOOKUP: 0 - _SignType: real - _UseEsrpSigning: true - _TeamName: DotNetCore - queue: - name: DotNetCore-Build - demands: - - agent.os -equals Windows_NT - steps: +# ################################################################################ +# - phase: Windows_x86 +# ################################################################################ +# variables: +# BuildConfig: Release +# OfficialBuildId: $(BUILD.BUILDNUMBER) +# DOTNET_CLI_TELEMETRY_OPTOUT: 1 +# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 +# DOTNET_MULTILEVEL_LOOKUP: 0 +# _SignType: real +# _UseEsrpSigning: true +# _TeamName: DotNetCore +# queue: +# name: DotNetCore-Build +# demands: +# - agent.os -equals Windows_NT +# steps: - - task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1 - displayName: Install MicroBuild Signing Plugin - inputs: - signType: '$(_SignType)' - zipSources: false - esrpSigning: '$(_UseEsrpSigning)' - env: - TeamName: $(_TeamName) - continueOnError: false - condition: and(succeeded(), in(variables._SignType, 'real', 'test')) +# - task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1 +# displayName: Install MicroBuild Signing Plugin +# inputs: +# signType: '$(_SignType)' +# zipSources: false +# esrpSigning: '$(_UseEsrpSigning)' +# env: +# TeamName: $(_TeamName) +# continueOnError: false +# condition: and(succeeded(), in(variables._SignType, 'real', 'test')) - # Only build native assets to avoid conflicts. - - script: ./build.cmd -buildNative -$(BuildConfig) -buildArch=x86 -skipRIDAgnosticAssets - displayName: Build - - - task: MSBuild@1 - displayName: Sign Windows_x86 Binaries - inputs: - solution: build/sign.proj - msbuildArguments: /p:SignType=$(_SignType) - msbuildVersion: 15.0 - continueOnError: false +# # Only build native assets to avoid conflicts. +# - script: ./build.cmd -buildNative -$(BuildConfig) -buildArch=x86 -skipRIDAgnosticAssets +# displayName: Build - - task: PublishBuildArtifacts@1 - displayName: Publish Windows_x86 package assets - inputs: - pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages - artifactName: PackageAssets - artifactType: container +# - task: MSBuild@1 +# displayName: Sign Windows_x86 Binaries +# inputs: +# solution: build/sign.proj +# msbuildArguments: /p:SignType=$(_SignType) +# msbuildVersion: 15.0 +# continueOnError: false - # Terminate all dotnet build processes. - - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet.exe build-server shutdown - displayName: Dotnet Server Shutdown +# - task: PublishBuildArtifacts@1 +# displayName: Publish Windows_x86 package assets +# inputs: +# pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages +# artifactName: PackageAssets +# artifactType: container + +# # Terminate all dotnet build processes. +# - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet.exe build-server shutdown +# displayName: Dotnet Server Shutdown ################################################################################ - phase: Windows_x64 ################################################################################ variables: - BuildConfig: Release + BuildConfig: release OfficialBuildId: $(BUILD.BUILDNUMBER) DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 @@ -125,7 +125,7 @@ phases: _TeamName: DotNetCore queue: name: DotNetCore-Build - demands: + demands: - agent.os -equals Windows_NT steps: @@ -140,8 +140,11 @@ phases: continueOnError: false condition: and(succeeded(), in(variables._SignType, 'real', 'test')) - # Build both native and managed assets. - - script: ./build.cmd -$(BuildConfig) + # Build both native and managed assets. + - script: ./build.cmd + -configuration $(BuildConfig) + /p:OfficialBuildId=$(BUILD.BUILDNUMBER) + /p:DotNetSignType=$(SignType) displayName: Build - task: ComponentGovernanceComponentDetection@0 @@ -150,7 +153,7 @@ phases: verbosity: 'Verbose' alertWarningLevel: 'High' - + - task: MSBuild@1 displayName: Sign Windows_x64 Binaries inputs: @@ -170,92 +173,92 @@ phases: - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet.exe build-server shutdown displayName: Dotnet Server Shutdown -################################################################################ -- phase: Package -################################################################################ - dependsOn: - - Linux - - MacOS - - Windows_x86 - - Windows_x64 - variables: - BuildConfig: Release - OfficialBuildId: $(BUILD.BUILDNUMBER) - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 - DOTNET_MULTILEVEL_LOOKUP: 0 - _SignType: real - _UseEsrpSigning: true - _TeamName: DotNetCore - _AzureDevopsFeedUrl: https://pkgs.dev.azure.com/dnceng/public/_packaging/MachineLearning/nuget/v3/index.json - _SymwebSymbolServerPath: https://microsoft.artifacts.visualstudio.com/DefaultCollection - _MsdlSymbolServerPath: https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection - queue: - name: DotNetCore-Build - demands: - - agent.os -equals Windows_NT - steps: +# ################################################################################ +# - phase: Package +# ################################################################################ +# dependsOn: +# - Linux +# - MacOS +# - Windows_x86 +# - Windows_x64 +# variables: +# BuildConfig: Release +# OfficialBuildId: $(BUILD.BUILDNUMBER) +# DOTNET_CLI_TELEMETRY_OPTOUT: 1 +# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 +# DOTNET_MULTILEVEL_LOOKUP: 0 +# _SignType: real +# _UseEsrpSigning: true +# _TeamName: DotNetCore +# _AzureDevopsFeedUrl: https://pkgs.dev.azure.com/dnceng/public/_packaging/MachineLearning/nuget/v3/index.json +# _SymwebSymbolServerPath: https://microsoft.artifacts.visualstudio.com/DefaultCollection +# _MsdlSymbolServerPath: https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection +# queue: +# name: DotNetCore-Build +# demands: +# - agent.os -equals Windows_NT +# steps: - # Install MicroBuild plugin - - task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1 - displayName: Install MicroBuild Signing Plugin - inputs: - signType: '$(_SignType)' - zipSources: false - esrpSigning: '$(_UseEsrpSigning)' - env: - TeamName: $(_TeamName) - continueOnError: false - condition: and(succeeded(), in(variables._SignType, 'real', 'test')) +# # Install MicroBuild plugin +# - task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1 +# displayName: Install MicroBuild Signing Plugin +# inputs: +# signType: '$(_SignType)' +# zipSources: false +# esrpSigning: '$(_UseEsrpSigning)' +# env: +# TeamName: $(_TeamName) +# continueOnError: false +# condition: and(succeeded(), in(variables._SignType, 'real', 'test')) - # Download all agent packages from all previous phases - - task: DownloadBuildArtifacts@0 - displayName: Download package assets - inputs: - artifactName: PackageAssets - downloadPath: $(Build.SourcesDirectory)/bin/obj/packages +# # Download all agent packages from all previous phases +# - task: DownloadBuildArtifacts@0 +# displayName: Download package assets +# inputs: +# artifactName: PackageAssets +# downloadPath: $(Build.SourcesDirectory)/bin/obj/packages - # Workaround https://github.com/Microsoft/vsts-tasks/issues/6739 - - task: CopyFiles@2 - displayName: Copy package assets to correct folder - inputs: - sourceFolder: $(Build.SourcesDirectory)/bin/obj/packages/PackageAssets - targetFolder: $(Build.SourcesDirectory)/bin/obj/packages - - - script: ./build.cmd -buildPackages - displayName: Create Packages +# # Workaround https://github.com/Microsoft/vsts-tasks/issues/6739 +# - task: CopyFiles@2 +# displayName: Copy package assets to correct folder +# inputs: +# sourceFolder: $(Build.SourcesDirectory)/bin/obj/packages/PackageAssets +# targetFolder: $(Build.SourcesDirectory)/bin/obj/packages - - task: MSBuild@1 - displayName: Sign Packages - inputs: - solution: build/sign.proj - msbuildArguments: /p:SignType=$(_SignType) /p:SignNugetPackages=true - msbuildVersion: 15.0 - continueOnError: false +# - script: ./build.cmd -buildPackages +# displayName: Create Packages - - task: NuGetAuthenticate@0 - inputs: - nuGetServiceConnections: machinelearning-dnceng-public-feed # To allow publishing to a feed of another organization +# - task: MSBuild@1 +# displayName: Sign Packages +# inputs: +# solution: build/sign.proj +# msbuildArguments: /p:SignType=$(_SignType) /p:SignNugetPackages=true +# msbuildVersion: 15.0 +# continueOnError: false - - script: Tools\dotnetcli\dotnet msbuild build\publish.proj /t:PublishPackages /p:NuGetFeedUrl=$(_AzureDevopsFeedUrl) /p:NuGetApiKey=AzureArtifacts - displayName: Publish Packages to AzureDevOps Feed +# - task: NuGetAuthenticate@0 +# inputs: +# nuGetServiceConnections: machinelearning-dnceng-public-feed # To allow publishing to a feed of another organization - - task: MSBuild@1 - displayName: Publish Symbols to SymWeb Symbol Server - inputs: - solution: build/publish.proj - msbuildArguments: /t:PublishSymbolPackages /p:SymbolServerPath=$(_SymwebSymbolServerPath) /p:SymbolServerPAT=$(SymwebSymbolServerPAT) - msbuildVersion: 15.0 - continueOnError: true +# - script: Tools\dotnetcli\dotnet msbuild build\publish.proj /t:PublishPackages /p:NuGetFeedUrl=$(_AzureDevopsFeedUrl) /p:NuGetApiKey=AzureArtifacts +# displayName: Publish Packages to AzureDevOps Feed - - task: MSBuild@1 - displayName: Publish Symbols to Msdl Symbol Server - inputs: - solution: build/publish.proj - msbuildArguments: /t:PublishSymbolPackages /p:SymbolServerPath=$(_MsdlSymbolServerPath) /p:SymbolServerPAT=$(MsdlSymbolServerPAT) - msbuildVersion: 15.0 - continueOnError: true +# - task: MSBuild@1 +# displayName: Publish Symbols to SymWeb Symbol Server +# inputs: +# solution: build/publish.proj +# msbuildArguments: /t:PublishSymbolPackages /p:SymbolServerPath=$(_SymwebSymbolServerPath) /p:SymbolServerPAT=$(SymwebSymbolServerPAT) +# msbuildVersion: 15.0 +# continueOnError: true - # Terminate all dotnet build processes. - - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet.exe build-server shutdown - displayName: Dotnet Server Shutdown \ No newline at end of file +# - task: MSBuild@1 +# displayName: Publish Symbols to Msdl Symbol Server +# inputs: +# solution: build/publish.proj +# msbuildArguments: /t:PublishSymbolPackages /p:SymbolServerPath=$(_MsdlSymbolServerPath) /p:SymbolServerPAT=$(MsdlSymbolServerPAT) +# msbuildVersion: 15.0 +# continueOnError: true + +# # Terminate all dotnet build processes. +# - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet.exe build-server shutdown +# displayName: Dotnet Server Shutdown From bddec92cd3b9a261843b3f33384b00b789cf7ba4 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 4 Nov 2020 13:10:28 -0800 Subject: [PATCH 02/14] more testing --- .vsts-dotnet-ci.yml | 88 +++++----- build/ci/job-template.yml | 32 ++-- build/vsts-ci.yml | 351 +++++++++++++++++++------------------- 3 files changed, 234 insertions(+), 237 deletions(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index 5c2dcf30cb..fcf5011f08 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -6,47 +6,47 @@ resources: containers: - container: CentosContainer image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet-8bba86b-20190314145033 - + - container: UbuntuContainer image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-mlnet-20200515184230-2c829e8 jobs: -- template: /build/ci/job-template.yml - parameters: - name: Centos_x64_NetCoreApp31 - buildScript: ./build.sh - container: CentosContainer - customMatrixes: - Debug_Build: - _configuration: Debug-netcoreapp3_1 - _config_short: DI - _includeBenchmarkData: false - _targetFramework: netcoreapp3.1 - Release_Build: - _configuration: Release-netcoreapp3_1 - _config_short: RI - _includeBenchmarkData: true - _targetFramework: netcoreapp3.1 - innerLoop: true - pool: - name: Hosted Ubuntu 1604 +# - template: /build/ci/job-template.yml +# parameters: +# name: Centos_x64_NetCoreApp31 +# buildScript: ./build.sh +# container: CentosContainer +# customMatrixes: +# Debug_Build: +# _configuration: Debug-netcoreapp3_1 +# _config_short: DI +# _includeBenchmarkData: false +# _targetFramework: netcoreapp3.1 +# Release_Build: +# _configuration: Release-netcoreapp3_1 +# _config_short: RI +# _includeBenchmarkData: true +# _targetFramework: netcoreapp3.1 +# innerLoop: true +# pool: +# name: Hosted Ubuntu 1604 -- template: /build/ci/job-template.yml - parameters: - name: Ubuntu_x64_NetCoreApp21 - buildScript: ./build.sh - container: UbuntuContainer - innerLoop: true - pool: - name: Hosted Ubuntu 1604 +# - template: /build/ci/job-template.yml +# parameters: +# name: Ubuntu_x64_NetCoreApp21 +# buildScript: ./build.sh +# container: UbuntuContainer +# innerLoop: true +# pool: +# name: Hosted Ubuntu 1604 -- template: /build/ci/job-template.yml - parameters: - name: MacOS_x64_NetCoreApp21 - buildScript: ./build.sh - innerLoop: true - pool: - name: Hosted macOS +# - template: /build/ci/job-template.yml +# parameters: +# name: MacOS_x64_NetCoreApp21 +# buildScript: ./build.sh +# innerLoop: true +# pool: +# name: Hosted macOS - template: /build/ci/job-template.yml parameters: @@ -97,12 +97,12 @@ jobs: pool: name: Hosted VS2017 -- template: /build/ci/job-template.yml - parameters: - name: Windows_x86_NetCoreApp21 - architecture: x86 - buildScript: build.cmd - innerLoop: true - vsTestConfiguration: "/Framework:.NETCoreApp,Version=v2.1" - pool: - name: Hosted VS2017 +# - template: /build/ci/job-template.yml +# parameters: +# name: Windows_x86_NetCoreApp21 +# architecture: x86 +# buildScript: build.cmd +# innerLoop: true +# vsTestConfiguration: "/Framework:.NETCoreApp,Version=v2.1" +# pool: +# name: Hosted VS2017 diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index 52abf2dc99..cbd1d11a40 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -21,7 +21,7 @@ jobs: timeoutInMinutes: 120 cancelTimeoutInMinutes: 10 variables: - dotnetPath: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet + dotnetPath: $(Build.SourcesDirectory)/.dotnet/dotnet nugetFeed: https://pkgs.dev.azure.com/dnceng/public/_packaging/MachineLearning/nuget/v3/index.json nightlyBuildProjPath: $(Build.SourcesDirectory)/test/Microsoft.ML.NightlyBuild.Tests/Microsoft.ML.NightlyBuild.Tests.csproj nightlyBuildRunPath: $(Build.SourcesDirectory)/bin/AnyCPU.$(_configuration)/Microsoft.ML.NightlyBuild.Tests/$(_targetFramework) @@ -43,7 +43,7 @@ jobs: _targetFramework: netcoreapp2.1 ${{ if ne(parameters.customMatrixes, '') }}: ${{ insert }}: ${{ parameters.customMatrixes }} - + pool: ${{ parameters.pool }} ${{ if ne(parameters.container, '') }}: container: ${{ parameters.container }} @@ -89,8 +89,8 @@ jobs: Get-ChildItem -Path '.\bin\AnyCPU.*' -Recurse | Select -ExpandProperty FullName | Where {$_ -notlike '*\Microsoft.ML.NightlyBuild.Tests*'} | - sort length -Descending | - Remove-Item -force + sort length -Descending | + Remove-Item -force Write-Output "Done cleaning up usless project..." displayName: Clean up useless project - script: $(dotnetPath) msbuild -restore $(nightlyBuildProjPath) /p:ReferenceTypeForTestFramework="Nuget" /p:Configuration=$(_configuration) /p:TargetArchitecture=${{ parameters.architecture }} @@ -106,10 +106,10 @@ jobs: timeoutInMinutes: 20 - ${{ if eq(parameters.innerLoop, 'false') }}: - ${{ if and(eq(parameters.runSpecific, 'false'), eq(parameters.useVSTestTask, 'false')) }}: - - script: ${{ parameters.buildScript }} -$(_configuration) -runtests -coverage=${{ parameters.codeCoverage }} + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -coverage=${{ parameters.codeCoverage }} displayName: Run All Tests. - ${{ if and(eq(parameters.runSpecific, 'true'), eq(parameters.useVSTestTask, 'false')) }}: - - script: ${{ parameters.buildScript }} -$(_configuration) -runSpecificTests -coverage=${{ parameters.codeCoverage }} + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -runSpecificTests -coverage=${{ parameters.codeCoverage }} displayName: Run Specific Tests. - ${{ if and(eq(parameters.buildScript, 'build.cmd'), eq(parameters.useVSTestTask, 'true')) }}: - task: VSTest@2 @@ -119,10 +119,10 @@ jobs: testAssemblyVer2: | **\*test.dll **\*tests.dll - !**\obj\** + !**\obj\** runSettingsFile: $(Build.SourcesDirectory)/tools-local/vstest.runsettings searchFolder: '$(System.DefaultWorkingDirectory)' - vstestLocationMethod: 'version' + vstestLocationMethod: 'version' vsTestVersion: 'latest' runInParallel: False runTestsInIsolation: True @@ -132,10 +132,10 @@ jobs: diagnosticsEnabled: False collectDumpOn: onAbortOnly publishRunAttachments: true - - ${{ if eq(parameters.innerLoop, 'true') }}: - - script: ${{ parameters.buildScript }} -$(_configuration) -runCITests -coverage=${{ parameters.codeCoverage }} + - ${{ if eq(parameters.innerLoop, 'true') }}: #-runCITests + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -coverage=${{ parameters.codeCoverage }} displayName: Run CI Tests. - - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet msbuild -restore build/Codecoverage.proj + - script: $(dotnetPath) msbuild -restore build/Codecoverage.proj displayName: Upload coverage to codecov.io condition: and(succeeded(), eq(${{ parameters.codeCoverage }}, True)) - task: PublishTestResults@2 @@ -143,7 +143,7 @@ jobs: condition: succeededOrFailed() inputs: testRunner: 'vSTest' - searchFolder: '$(System.DefaultWorkingDirectory)/bin' + searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/bin' testResultsFiles: '**/*.trx' testRunTitle: Machinelearning_Tests_${{ parameters.name }}_$(_configuration)_$(Build.BuildNumber) configuration: $(_configuration) @@ -152,14 +152,14 @@ jobs: displayName: Stage build logs condition: not(succeeded()) inputs: - sourceFolder: $(Build.SourcesDirectory) - contents: '?(msbuild.*|binclash.log|init-tools.log)' + sourceFolder: $(Build.SourcesDirectory)/artifacts/log/ + contents: '**' targetFolder: $(Build.ArtifactStagingDirectory) - task: CopyFiles@2 displayName: Stage test output condition: not(succeeded()) inputs: - sourceFolder: $(Build.SourcesDirectory)/bin + sourceFolder: $(Build.SourcesDirectory)/artifacts/bin contents: | **/TestOutput/**/* **/*.trx @@ -172,7 +172,7 @@ jobs: contents: | *.dmp CrashDumps/*.dmp - bin/**/*.pdb + artifacts/bin/**/*.pdb targetFolder: $(Build.ArtifactStagingDirectory) - task: PublishBuildArtifacts@1 displayName: Publish build and test logs diff --git a/build/vsts-ci.yml b/build/vsts-ci.yml index e39268e95c..14b2343eef 100644 --- a/build/vsts-ci.yml +++ b/build/vsts-ci.yml @@ -8,114 +8,114 @@ resources: image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet-8bba86b-20190314145033 phases: -# ################################################################################ -# - phase: Linux -# ################################################################################ -# variables: -# BuildConfig: Release -# OfficialBuildId: $(BUILD.BUILDNUMBER) -# DOTNET_CLI_TELEMETRY_OPTOUT: 1 -# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 -# DOTNET_MULTILEVEL_LOOKUP: 0 -# queue: -# name: DotNet-Build -# demands: -# - agent.os -equals linux -# container: CentosContainer -# steps: -# # Only build native assets to avoid conflicts. -# - script: ./build.sh -buildNative -$(BuildConfig) -skipRIDAgnosticAssets -# displayName: Build +################################################################################ +- phase: Linux +################################################################################ + variables: + BuildConfig: Release + OfficialBuildId: $(BUILD.BUILDNUMBER) + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 + DOTNET_MULTILEVEL_LOOKUP: 0 + queue: + name: DotNet-Build + demands: + - agent.os -equals linux + container: CentosContainer + steps: + # Only build native assets to avoid conflicts. + - script: ./build.sh -buildNative -$(BuildConfig) -skipRIDAgnosticAssets + displayName: Build -# - task: PublishBuildArtifacts@1 -# displayName: Publish Linux package assets -# inputs: -# pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages -# artifactName: PackageAssets -# artifactType: container + - task: PublishBuildArtifacts@1 + displayName: Publish Linux package assets + inputs: + pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages + artifactName: PackageAssets + artifactType: container -# ################################################################################ -# - phase: MacOS -# ################################################################################ -# variables: -# BuildConfig: Release -# OfficialBuildId: $(BUILD.BUILDNUMBER) -# DOTNET_CLI_TELEMETRY_OPTOUT: 1 -# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 -# DOTNET_MULTILEVEL_LOOKUP: 0 -# queue: -# name: Hosted macOS -# steps: -# - script: brew update && brew install $(Build.SourcesDirectory)/build/libomp.rb && brew link libomp --force -# displayName: Install build dependencies -# # Only build native assets to avoid conflicts. -# - script: ./build.sh -buildNative -$(BuildConfig) -skipRIDAgnosticAssets -# displayName: Build +################################################################################ +- phase: MacOS +################################################################################ + variables: + BuildConfig: Release + OfficialBuildId: $(BUILD.BUILDNUMBER) + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 + DOTNET_MULTILEVEL_LOOKUP: 0 + queue: + name: Hosted macOS + steps: + - script: brew update && brew install $(Build.SourcesDirectory)/build/libomp.rb && brew link libomp --force + displayName: Install build dependencies + # Only build native assets to avoid conflicts. + - script: ./build.sh -buildNative -$(BuildConfig) -skipRIDAgnosticAssets + displayName: Build -# - task: PublishBuildArtifacts@1 -# displayName: Publish macOS package assets -# inputs: -# pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages -# artifactName: PackageAssets -# artifactType: container + - task: PublishBuildArtifacts@1 + displayName: Publish macOS package assets + inputs: + pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages + artifactName: PackageAssets + artifactType: container -# ################################################################################ -# - phase: Windows_x86 -# ################################################################################ -# variables: -# BuildConfig: Release -# OfficialBuildId: $(BUILD.BUILDNUMBER) -# DOTNET_CLI_TELEMETRY_OPTOUT: 1 -# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 -# DOTNET_MULTILEVEL_LOOKUP: 0 -# _SignType: real -# _UseEsrpSigning: true -# _TeamName: DotNetCore -# queue: -# name: DotNetCore-Build -# demands: -# - agent.os -equals Windows_NT -# steps: +################################################################################ +- phase: Windows_x86 +################################################################################ + variables: + BuildConfig: Release + OfficialBuildId: $(BUILD.BUILDNUMBER) + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 + DOTNET_MULTILEVEL_LOOKUP: 0 + _SignType: real + _UseEsrpSigning: true + _TeamName: DotNetCore + queue: + name: DotNetCore-Build + demands: + - agent.os -equals Windows_NT + steps: -# - task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1 -# displayName: Install MicroBuild Signing Plugin -# inputs: -# signType: '$(_SignType)' -# zipSources: false -# esrpSigning: '$(_UseEsrpSigning)' -# env: -# TeamName: $(_TeamName) -# continueOnError: false -# condition: and(succeeded(), in(variables._SignType, 'real', 'test')) + - task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1 + displayName: Install MicroBuild Signing Plugin + inputs: + signType: '$(_SignType)' + zipSources: false + esrpSigning: '$(_UseEsrpSigning)' + env: + TeamName: $(_TeamName) + continueOnError: false + condition: and(succeeded(), in(variables._SignType, 'real', 'test')) -# # Only build native assets to avoid conflicts. -# - script: ./build.cmd -buildNative -$(BuildConfig) -buildArch=x86 -skipRIDAgnosticAssets -# displayName: Build + # Only build native assets to avoid conflicts. + - script: ./build.cmd -buildNative -$(BuildConfig) -buildArch=x86 -skipRIDAgnosticAssets + displayName: Build -# - task: MSBuild@1 -# displayName: Sign Windows_x86 Binaries -# inputs: -# solution: build/sign.proj -# msbuildArguments: /p:SignType=$(_SignType) -# msbuildVersion: 15.0 -# continueOnError: false + - task: MSBuild@1 + displayName: Sign Windows_x86 Binaries + inputs: + solution: build/sign.proj + msbuildArguments: /p:SignType=$(_SignType) + msbuildVersion: 15.0 + continueOnError: false -# - task: PublishBuildArtifacts@1 -# displayName: Publish Windows_x86 package assets -# inputs: -# pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages -# artifactName: PackageAssets -# artifactType: container + - task: PublishBuildArtifacts@1 + displayName: Publish Windows_x86 package assets + inputs: + pathToPublish: $(Build.SourcesDirectory)/bin/obj/packages + artifactName: PackageAssets + artifactType: container -# # Terminate all dotnet build processes. -# - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet.exe build-server shutdown -# displayName: Dotnet Server Shutdown + # Terminate all dotnet build processes. + - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet.exe build-server shutdown + displayName: Dotnet Server Shutdown ################################################################################ - phase: Windows_x64 ################################################################################ variables: - BuildConfig: release + BuildConfig: Release OfficialBuildId: $(BUILD.BUILDNUMBER) DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 @@ -141,10 +141,7 @@ phases: condition: and(succeeded(), in(variables._SignType, 'real', 'test')) # Build both native and managed assets. - - script: ./build.cmd - -configuration $(BuildConfig) - /p:OfficialBuildId=$(BUILD.BUILDNUMBER) - /p:DotNetSignType=$(SignType) + - script: ./build.cmd -$(BuildConfig) displayName: Build - task: ComponentGovernanceComponentDetection@0 @@ -173,92 +170,92 @@ phases: - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet.exe build-server shutdown displayName: Dotnet Server Shutdown -# ################################################################################ -# - phase: Package -# ################################################################################ -# dependsOn: -# - Linux -# - MacOS -# - Windows_x86 -# - Windows_x64 -# variables: -# BuildConfig: Release -# OfficialBuildId: $(BUILD.BUILDNUMBER) -# DOTNET_CLI_TELEMETRY_OPTOUT: 1 -# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 -# DOTNET_MULTILEVEL_LOOKUP: 0 -# _SignType: real -# _UseEsrpSigning: true -# _TeamName: DotNetCore -# _AzureDevopsFeedUrl: https://pkgs.dev.azure.com/dnceng/public/_packaging/MachineLearning/nuget/v3/index.json -# _SymwebSymbolServerPath: https://microsoft.artifacts.visualstudio.com/DefaultCollection -# _MsdlSymbolServerPath: https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection -# queue: -# name: DotNetCore-Build -# demands: -# - agent.os -equals Windows_NT -# steps: +################################################################################ +- phase: Package +################################################################################ + dependsOn: + - Linux + - MacOS + - Windows_x86 + - Windows_x64 + variables: + BuildConfig: Release + OfficialBuildId: $(BUILD.BUILDNUMBER) + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 + DOTNET_MULTILEVEL_LOOKUP: 0 + _SignType: real + _UseEsrpSigning: true + _TeamName: DotNetCore + _AzureDevopsFeedUrl: https://pkgs.dev.azure.com/dnceng/public/_packaging/MachineLearning/nuget/v3/index.json + _SymwebSymbolServerPath: https://microsoft.artifacts.visualstudio.com/DefaultCollection + _MsdlSymbolServerPath: https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection + queue: + name: DotNetCore-Build + demands: + - agent.os -equals Windows_NT + steps: -# # Install MicroBuild plugin -# - task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1 -# displayName: Install MicroBuild Signing Plugin -# inputs: -# signType: '$(_SignType)' -# zipSources: false -# esrpSigning: '$(_UseEsrpSigning)' -# env: -# TeamName: $(_TeamName) -# continueOnError: false -# condition: and(succeeded(), in(variables._SignType, 'real', 'test')) + # Install MicroBuild plugin + - task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1 + displayName: Install MicroBuild Signing Plugin + inputs: + signType: '$(_SignType)' + zipSources: false + esrpSigning: '$(_UseEsrpSigning)' + env: + TeamName: $(_TeamName) + continueOnError: false + condition: and(succeeded(), in(variables._SignType, 'real', 'test')) -# # Download all agent packages from all previous phases -# - task: DownloadBuildArtifacts@0 -# displayName: Download package assets -# inputs: -# artifactName: PackageAssets -# downloadPath: $(Build.SourcesDirectory)/bin/obj/packages + # Download all agent packages from all previous phases + - task: DownloadBuildArtifacts@0 + displayName: Download package assets + inputs: + artifactName: PackageAssets + downloadPath: $(Build.SourcesDirectory)/bin/obj/packages -# # Workaround https://github.com/Microsoft/vsts-tasks/issues/6739 -# - task: CopyFiles@2 -# displayName: Copy package assets to correct folder -# inputs: -# sourceFolder: $(Build.SourcesDirectory)/bin/obj/packages/PackageAssets -# targetFolder: $(Build.SourcesDirectory)/bin/obj/packages + # Workaround https://github.com/Microsoft/vsts-tasks/issues/6739 + - task: CopyFiles@2 + displayName: Copy package assets to correct folder + inputs: + sourceFolder: $(Build.SourcesDirectory)/bin/obj/packages/PackageAssets + targetFolder: $(Build.SourcesDirectory)/bin/obj/packages -# - script: ./build.cmd -buildPackages -# displayName: Create Packages + - script: ./build.cmd -buildPackages + displayName: Create Packages -# - task: MSBuild@1 -# displayName: Sign Packages -# inputs: -# solution: build/sign.proj -# msbuildArguments: /p:SignType=$(_SignType) /p:SignNugetPackages=true -# msbuildVersion: 15.0 -# continueOnError: false + - task: MSBuild@1 + displayName: Sign Packages + inputs: + solution: build/sign.proj + msbuildArguments: /p:SignType=$(_SignType) /p:SignNugetPackages=true + msbuildVersion: 15.0 + continueOnError: false -# - task: NuGetAuthenticate@0 -# inputs: -# nuGetServiceConnections: machinelearning-dnceng-public-feed # To allow publishing to a feed of another organization + - task: NuGetAuthenticate@0 + inputs: + nuGetServiceConnections: machinelearning-dnceng-public-feed # To allow publishing to a feed of another organization -# - script: Tools\dotnetcli\dotnet msbuild build\publish.proj /t:PublishPackages /p:NuGetFeedUrl=$(_AzureDevopsFeedUrl) /p:NuGetApiKey=AzureArtifacts -# displayName: Publish Packages to AzureDevOps Feed + - script: Tools\dotnetcli\dotnet msbuild build\publish.proj /t:PublishPackages /p:NuGetFeedUrl=$(_AzureDevopsFeedUrl) /p:NuGetApiKey=AzureArtifacts + displayName: Publish Packages to AzureDevOps Feed -# - task: MSBuild@1 -# displayName: Publish Symbols to SymWeb Symbol Server -# inputs: -# solution: build/publish.proj -# msbuildArguments: /t:PublishSymbolPackages /p:SymbolServerPath=$(_SymwebSymbolServerPath) /p:SymbolServerPAT=$(SymwebSymbolServerPAT) -# msbuildVersion: 15.0 -# continueOnError: true + - task: MSBuild@1 + displayName: Publish Symbols to SymWeb Symbol Server + inputs: + solution: build/publish.proj + msbuildArguments: /t:PublishSymbolPackages /p:SymbolServerPath=$(_SymwebSymbolServerPath) /p:SymbolServerPAT=$(SymwebSymbolServerPAT) + msbuildVersion: 15.0 + continueOnError: true -# - task: MSBuild@1 -# displayName: Publish Symbols to Msdl Symbol Server -# inputs: -# solution: build/publish.proj -# msbuildArguments: /t:PublishSymbolPackages /p:SymbolServerPath=$(_MsdlSymbolServerPath) /p:SymbolServerPAT=$(MsdlSymbolServerPAT) -# msbuildVersion: 15.0 -# continueOnError: true + - task: MSBuild@1 + displayName: Publish Symbols to Msdl Symbol Server + inputs: + solution: build/publish.proj + msbuildArguments: /t:PublishSymbolPackages /p:SymbolServerPath=$(_MsdlSymbolServerPath) /p:SymbolServerPAT=$(MsdlSymbolServerPAT) + msbuildVersion: 15.0 + continueOnError: true -# # Terminate all dotnet build processes. -# - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet.exe build-server shutdown -# displayName: Dotnet Server Shutdown + # Terminate all dotnet build processes. + - script: $(Build.SourcesDirectory)/Tools/dotnetcli/dotnet.exe build-server shutdown + displayName: Dotnet Server Shutdown \ No newline at end of file From bd1aed7ec6ffd4fc3bb691a02f2b870357fa7b90 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 4 Nov 2020 13:31:55 -0800 Subject: [PATCH 03/14] more testing --- .vsts-dotnet-ci.yml | 26 +++++++++++++------------- build/ci/job-template.yml | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index fcf5011f08..959e3064ad 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -54,12 +54,12 @@ jobs: buildScript: build.cmd customMatrixes: Debug_Build: - _configuration: Debug-netcoreapp3_1 + _configuration: Debug _config_short: DI _includeBenchmarkData: false _targetFramework: netcoreapp3.1 Release_Build: - _configuration: Release-netcoreapp3_1 + _configuration: Release _config_short: RI _includeBenchmarkData: true _targetFramework: netcoreapp3.1 @@ -83,12 +83,12 @@ jobs: buildScript: build.cmd customMatrixes: Debug_Build: - _configuration: Debug-netfx + _configuration: Debug _config_short: DFX _includeBenchmarkData: false _targetFramework: win-x64 Release_Build: - _configuration: Release-netfx + _configuration: Release _config_short: RFX _includeBenchmarkData: false _targetFramework: win-x64 @@ -97,12 +97,12 @@ jobs: pool: name: Hosted VS2017 -# - template: /build/ci/job-template.yml -# parameters: -# name: Windows_x86_NetCoreApp21 -# architecture: x86 -# buildScript: build.cmd -# innerLoop: true -# vsTestConfiguration: "/Framework:.NETCoreApp,Version=v2.1" -# pool: -# name: Hosted VS2017 +- template: /build/ci/job-template.yml + parameters: + name: Windows_x86_NetCoreApp21 + architecture: x86 + buildScript: build.cmd + innerLoop: true + vsTestConfiguration: "/Framework:.NETCoreApp,Version=v2.1" + pool: + name: Hosted VS2017 diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index cbd1d11a40..6f5c5990c8 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -55,7 +55,7 @@ jobs: - ${{ if and( eq(parameters.nightlyBuild, 'true'), eq(parameters.pool.name, 'Hosted Ubuntu 1604')) }}: - bash: echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$(nightlyBuildRunPath):$LD_LIBRARY_PATH" displayName: Set LD_LIBRARY_PATH for Ubuntu and CentOS to locate Native shared library in current running path - - script: ${{ parameters.buildScript }} -$(_configuration) -buildArch=${{ parameters.architecture }} + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -platform=${{ parameters.architecture }} displayName: Build - ${{ if eq(parameters.pool.name, 'Hosted macOS') }}: - task: Bash@3 From 09b3a2f56c86effd7b802820fad053c49080b8ae Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 4 Nov 2020 13:43:48 -0800 Subject: [PATCH 04/14] more testing --- build/ci/job-template.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index 6f5c5990c8..01a5ca90e8 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -55,7 +55,7 @@ jobs: - ${{ if and( eq(parameters.nightlyBuild, 'true'), eq(parameters.pool.name, 'Hosted Ubuntu 1604')) }}: - bash: echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$(nightlyBuildRunPath):$LD_LIBRARY_PATH" displayName: Set LD_LIBRARY_PATH for Ubuntu and CentOS to locate Native shared library in current running path - - script: ${{ parameters.buildScript }} -configuration $(_configuration) -platform=${{ parameters.architecture }} + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -platform ${{ parameters.architecture }} displayName: Build - ${{ if eq(parameters.pool.name, 'Hosted macOS') }}: - task: Bash@3 From 06fd705645e9f8cb0fb203129abc94232a4ed488 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 4 Nov 2020 14:08:28 -0800 Subject: [PATCH 05/14] more testing --- build/ci/job-template.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index 01a5ca90e8..76c4e2dc8f 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -70,11 +70,11 @@ jobs: script: cd packages;find . -type d -path "*/runtimes/osx-*" -exec rm -rv {} +;find . -type d -path "*/runtimes/win-*" -exec rm -rv {} +;cd .. displayName: Clean up non-Linux runtime folders of NuGet Packages to save disk space - ${{ if eq(parameters.buildScript, 'build.cmd') }}: - - task: PowerShell@2 - inputs: - targetType: inline - script: Get-ChildItem -Path '.\packages\*\runtimes\*' -Recurse | Select -ExpandProperty FullName | Where {$_ -notlike '*\win-*'} | sort length -Descending | Remove-Item -Recurse -Confirm:$false -Force - displayName: Clean up non-Windows runtime folders of NuGet Packages to save disk space + # - task: PowerShell@2 + # inputs: + # targetType: inline + # script: Get-ChildItem -Path '.\packages\*\runtimes\*' -Recurse | Select -ExpandProperty FullName | Where {$_ -notlike '*\win-*'} | sort length -Descending | Remove-Item -Recurse -Confirm:$false -Force + # displayName: Clean up non-Windows runtime folders of NuGet Packages to save disk space - script: dir /s "bin" displayName: show bin folder disk usage - ${{ if eq(parameters.nightlyBuild, 'true') }}: From 8b02145acbbbb6d62b402381c0ae23f69e68d5f7 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 4 Nov 2020 14:27:03 -0800 Subject: [PATCH 06/14] more testing --- build/ci/job-template.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index 76c4e2dc8f..e3b621535d 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -98,12 +98,12 @@ jobs: - script: ${{ parameters.buildScript }} -$(_configuration) -runnightlybuildtests displayName: Run Nightly Build Tests - ${{ if eq(parameters.nightlyBuild, 'false') }}: - - script: ${{ parameters.buildScript }} -- /t:DownloadExternalTestFiles /p:IncludeBenchmarkData=$(_includeBenchmarkData) - displayName: Download Benchmark Data - timeoutInMinutes: 10 - - script: ${{ parameters.buildScript }} -- /t:DownloadTensorflowMetaFiles /p:IncludeTensorflowMetaFile=true - displayName: Download Tensorflow Meta File - timeoutInMinutes: 20 + # - script: ${{ parameters.buildScript }} -- /t:DownloadExternalTestFiles /p:IncludeBenchmarkData=$(_includeBenchmarkData) + # displayName: Download Benchmark Data + # timeoutInMinutes: 10 + # - script: ${{ parameters.buildScript }} -- /t:DownloadTensorflowMetaFiles /p:IncludeTensorflowMetaFile=true + # displayName: Download Tensorflow Meta File + # timeoutInMinutes: 20 - ${{ if eq(parameters.innerLoop, 'false') }}: - ${{ if and(eq(parameters.runSpecific, 'false'), eq(parameters.useVSTestTask, 'false')) }}: - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -coverage=${{ parameters.codeCoverage }} From 73f932cfd9901180262a377a814820d80ab7d789 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 4 Nov 2020 14:42:55 -0800 Subject: [PATCH 07/14] more testing --- build.cmd | 2 +- build/ci/job-template.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.cmd b/build.cmd index 5e655ca47a..9aef81fd1f 100644 --- a/build.cmd +++ b/build.cmd @@ -1,3 +1,3 @@ @echo off -powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\common\Build.ps1""" -restore -build -pack -warnAsError 0 %*" +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\common\Build.ps1""" -restore -build -warnAsError 0 %*" exit /b %ErrorLevel% diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index e3b621535d..fc7b0c7e2b 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -106,10 +106,10 @@ jobs: # timeoutInMinutes: 20 - ${{ if eq(parameters.innerLoop, 'false') }}: - ${{ if and(eq(parameters.runSpecific, 'false'), eq(parameters.useVSTestTask, 'false')) }}: - - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -coverage=${{ parameters.codeCoverage }} + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -ci #-coverage=${{ parameters.codeCoverage }} displayName: Run All Tests. - ${{ if and(eq(parameters.runSpecific, 'true'), eq(parameters.useVSTestTask, 'false')) }}: - - script: ${{ parameters.buildScript }} -configuration $(_configuration) -runSpecificTests -coverage=${{ parameters.codeCoverage }} + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -runSpecificTests -ci #-coverage=${{ parameters.codeCoverage }} displayName: Run Specific Tests. - ${{ if and(eq(parameters.buildScript, 'build.cmd'), eq(parameters.useVSTestTask, 'true')) }}: - task: VSTest@2 @@ -133,7 +133,7 @@ jobs: collectDumpOn: onAbortOnly publishRunAttachments: true - ${{ if eq(parameters.innerLoop, 'true') }}: #-runCITests - - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -coverage=${{ parameters.codeCoverage }} + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -ci #-coverage=${{ parameters.codeCoverage }} displayName: Run CI Tests. - script: $(dotnetPath) msbuild -restore build/Codecoverage.proj displayName: Upload coverage to codecov.io @@ -182,5 +182,5 @@ jobs: artifactName: ${{ parameters.name }} $(_config_short) artifactType: container - ${{ if eq(parameters.nightlyBuild, 'false') }}: - - script: ${{ parameters.buildScript }} -buildPackages + - script: ${{ parameters.buildScript }} -pack -ci #-buildPackages displayName: Build Packages From 5c98847a9c2481774d07107ec5a097989886730a Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 4 Nov 2020 16:07:13 -0800 Subject: [PATCH 08/14] more testing --- .vsts-dotnet-ci.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index 959e3064ad..fcf5011f08 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -54,12 +54,12 @@ jobs: buildScript: build.cmd customMatrixes: Debug_Build: - _configuration: Debug + _configuration: Debug-netcoreapp3_1 _config_short: DI _includeBenchmarkData: false _targetFramework: netcoreapp3.1 Release_Build: - _configuration: Release + _configuration: Release-netcoreapp3_1 _config_short: RI _includeBenchmarkData: true _targetFramework: netcoreapp3.1 @@ -83,12 +83,12 @@ jobs: buildScript: build.cmd customMatrixes: Debug_Build: - _configuration: Debug + _configuration: Debug-netfx _config_short: DFX _includeBenchmarkData: false _targetFramework: win-x64 Release_Build: - _configuration: Release + _configuration: Release-netfx _config_short: RFX _includeBenchmarkData: false _targetFramework: win-x64 @@ -97,12 +97,12 @@ jobs: pool: name: Hosted VS2017 -- template: /build/ci/job-template.yml - parameters: - name: Windows_x86_NetCoreApp21 - architecture: x86 - buildScript: build.cmd - innerLoop: true - vsTestConfiguration: "/Framework:.NETCoreApp,Version=v2.1" - pool: - name: Hosted VS2017 +# - template: /build/ci/job-template.yml +# parameters: +# name: Windows_x86_NetCoreApp21 +# architecture: x86 +# buildScript: build.cmd +# innerLoop: true +# vsTestConfiguration: "/Framework:.NETCoreApp,Version=v2.1" +# pool: +# name: Hosted VS2017 From ca5664c8af63828724e78e27d470946dd74fec89 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 4 Nov 2020 18:13:58 -0800 Subject: [PATCH 09/14] more testing --- .vsts-dotnet-ci.yml | 18 +++++++++--------- build/ci/job-template.yml | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index fcf5011f08..5d5bfe7c0a 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -97,12 +97,12 @@ jobs: pool: name: Hosted VS2017 -# - template: /build/ci/job-template.yml -# parameters: -# name: Windows_x86_NetCoreApp21 -# architecture: x86 -# buildScript: build.cmd -# innerLoop: true -# vsTestConfiguration: "/Framework:.NETCoreApp,Version=v2.1" -# pool: -# name: Hosted VS2017 +- template: /build/ci/job-template.yml + parameters: + name: Windows_x86_NetCoreApp21 + architecture: x86 + buildScript: build.cmd + innerLoop: true + vsTestConfiguration: "/Framework:.NETCoreApp,Version=v2.1" + pool: + name: Hosted VS2017 diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index fc7b0c7e2b..d9dcd6b387 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -55,7 +55,7 @@ jobs: - ${{ if and( eq(parameters.nightlyBuild, 'true'), eq(parameters.pool.name, 'Hosted Ubuntu 1604')) }}: - bash: echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$(nightlyBuildRunPath):$LD_LIBRARY_PATH" displayName: Set LD_LIBRARY_PATH for Ubuntu and CentOS to locate Native shared library in current running path - - script: ${{ parameters.buildScript }} -configuration $(_configuration) -platform ${{ parameters.architecture }} + - script: ${{ parameters.buildScript }} -configuration $(_configuration) /p:TargetArchitecture=${{ parameters.architecture }} displayName: Build - ${{ if eq(parameters.pool.name, 'Hosted macOS') }}: - task: Bash@3 @@ -154,7 +154,7 @@ jobs: inputs: sourceFolder: $(Build.SourcesDirectory)/artifacts/log/ contents: '**' - targetFolder: $(Build.ArtifactStagingDirectory) + targetFolder: $(Build.ArtifactStagingDirectory)artifacts/log/ - task: CopyFiles@2 displayName: Stage test output condition: not(succeeded()) From 696e5ae8d18e841c4738ab9e4ab56236fd2eb1e6 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Fri, 6 Nov 2020 12:53:18 -0800 Subject: [PATCH 10/14] more testing changes --- build/ci/job-template.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index d9dcd6b387..04f0cbfe8d 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -93,7 +93,7 @@ jobs: Remove-Item -force Write-Output "Done cleaning up usless project..." displayName: Clean up useless project - - script: $(dotnetPath) msbuild -restore $(nightlyBuildProjPath) /p:ReferenceTypeForTestFramework="Nuget" /p:Configuration=$(_configuration) /p:TargetArchitecture=${{ parameters.architecture }} + - script: $(dotnetPath) msbuild -restore $(nightlyBuildProjPath) /p:ReferenceTypeForTestFramework="Nuget" -configuration $(_configuration) /p:TargetArchitecture=${{ parameters.architecture }} displayName: Build Nightly-Build Project with latest package versions - script: ${{ parameters.buildScript }} -$(_configuration) -runnightlybuildtests displayName: Run Nightly Build Tests @@ -143,7 +143,7 @@ jobs: condition: succeededOrFailed() inputs: testRunner: 'vSTest' - searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/bin' + searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults' testResultsFiles: '**/*.trx' testRunTitle: Machinelearning_Tests_${{ parameters.name }}_$(_configuration)_$(Build.BuildNumber) configuration: $(_configuration) From 4c95f1d0dc90db50bfd85a157a8b7dddfda93359 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Fri, 6 Nov 2020 12:57:04 -0800 Subject: [PATCH 11/14] more testing changes --- build/ci/job-template.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index 04f0cbfe8d..3a726ef9cd 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -106,10 +106,10 @@ jobs: # timeoutInMinutes: 20 - ${{ if eq(parameters.innerLoop, 'false') }}: - ${{ if and(eq(parameters.runSpecific, 'false'), eq(parameters.useVSTestTask, 'false')) }}: - - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -ci #-coverage=${{ parameters.codeCoverage }} + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -ci /p:TestRunnerAdditionalArguments=-notrait%20Category=SkipInCI #-coverage=${{ parameters.codeCoverage }} displayName: Run All Tests. - ${{ if and(eq(parameters.runSpecific, 'true'), eq(parameters.useVSTestTask, 'false')) }}: - - script: ${{ parameters.buildScript }} -configuration $(_configuration) -runSpecificTests -ci #-coverage=${{ parameters.codeCoverage }} + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -ci /p:TestRunnerAdditionalArguments=-trait%20Category=RunSpecificTest #-coverage=${{ parameters.codeCoverage }} displayName: Run Specific Tests. - ${{ if and(eq(parameters.buildScript, 'build.cmd'), eq(parameters.useVSTestTask, 'true')) }}: - task: VSTest@2 From 2d245814d84ffe1288e0db3d9c5627ec4978d13a Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Fri, 6 Nov 2020 15:42:34 -0800 Subject: [PATCH 12/14] test result logs --- build/ci/job-template.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index 3a726ef9cd..1f3c2ee36a 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -98,12 +98,6 @@ jobs: - script: ${{ parameters.buildScript }} -$(_configuration) -runnightlybuildtests displayName: Run Nightly Build Tests - ${{ if eq(parameters.nightlyBuild, 'false') }}: - # - script: ${{ parameters.buildScript }} -- /t:DownloadExternalTestFiles /p:IncludeBenchmarkData=$(_includeBenchmarkData) - # displayName: Download Benchmark Data - # timeoutInMinutes: 10 - # - script: ${{ parameters.buildScript }} -- /t:DownloadTensorflowMetaFiles /p:IncludeTensorflowMetaFile=true - # displayName: Download Tensorflow Meta File - # timeoutInMinutes: 20 - ${{ if eq(parameters.innerLoop, 'false') }}: - ${{ if and(eq(parameters.runSpecific, 'false'), eq(parameters.useVSTestTask, 'false')) }}: - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -ci /p:TestRunnerAdditionalArguments=-notrait%20Category=SkipInCI #-coverage=${{ parameters.codeCoverage }} @@ -159,10 +153,9 @@ jobs: displayName: Stage test output condition: not(succeeded()) inputs: - sourceFolder: $(Build.SourcesDirectory)/artifacts/bin + sourceFolder: $(Build.SourcesDirectory)/artifacts/TestResults contents: | - **/TestOutput/**/* - **/*.trx + ** targetFolder: $(Build.ArtifactStagingDirectory) - task: CopyFiles@2 displayName: Stage process dump and pdb if any From 7e4065adf447c6e80dbb8a2e3994ebcb36a256c2 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Fri, 6 Nov 2020 16:33:05 -0800 Subject: [PATCH 13/14] comments from pr --- build/ci/job-template.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index 1f3c2ee36a..33102e5433 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -70,6 +70,7 @@ jobs: script: cd packages;find . -type d -path "*/runtimes/osx-*" -exec rm -rv {} +;find . -type d -path "*/runtimes/win-*" -exec rm -rv {} +;cd .. displayName: Clean up non-Linux runtime folders of NuGet Packages to save disk space - ${{ if eq(parameters.buildScript, 'build.cmd') }}: + # TODO: We need to do this. THe packages are restored in a different folder so we need find the correct path. # - task: PowerShell@2 # inputs: # targetType: inline @@ -100,6 +101,7 @@ jobs: - ${{ if eq(parameters.nightlyBuild, 'false') }}: - ${{ if eq(parameters.innerLoop, 'false') }}: - ${{ if and(eq(parameters.runSpecific, 'false'), eq(parameters.useVSTestTask, 'false')) }}: + # TODO: Code coverage needs to be fixed. - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -ci /p:TestRunnerAdditionalArguments=-notrait%20Category=SkipInCI #-coverage=${{ parameters.codeCoverage }} displayName: Run All Tests. - ${{ if and(eq(parameters.runSpecific, 'true'), eq(parameters.useVSTestTask, 'false')) }}: @@ -126,8 +128,8 @@ jobs: diagnosticsEnabled: False collectDumpOn: onAbortOnly publishRunAttachments: true - - ${{ if eq(parameters.innerLoop, 'true') }}: #-runCITests - - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -ci #-coverage=${{ parameters.codeCoverage }} + - ${{ if eq(parameters.innerLoop, 'true') }}: + - script: ${{ parameters.buildScript }} -configuration $(_configuration) -test -ci /p:TestRunnerAdditionalArguments=-notrait%20Category=SkipInCI #-coverage=${{ parameters.codeCoverage }} displayName: Run CI Tests. - script: $(dotnetPath) msbuild -restore build/Codecoverage.proj displayName: Upload coverage to codecov.io @@ -175,5 +177,5 @@ jobs: artifactName: ${{ parameters.name }} $(_config_short) artifactType: container - ${{ if eq(parameters.nightlyBuild, 'false') }}: - - script: ${{ parameters.buildScript }} -pack -ci #-buildPackages + - script: ${{ parameters.buildScript }} -pack -ci displayName: Build Packages From 4bc10a7bb99f967ab46c0fdbeb9862d882e945d7 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Fri, 6 Nov 2020 16:34:40 -0800 Subject: [PATCH 14/14] comments from pr --- build/ci/job-template.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/build/ci/job-template.yml b/build/ci/job-template.yml index 33102e5433..131ecab51a 100644 --- a/build/ci/job-template.yml +++ b/build/ci/job-template.yml @@ -1,3 +1,4 @@ +#TODO: Need to update build documentation. parameters: name: '' architecture: x64