resources: - repo: self clean: true pool: vmImage: 'windows-latest' variables: SamplesBin: SamplesBin WINDOWS_WINMD: C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.19041.0\Windows.winmd WindowsTargetPlatformVersion: 10.0.19041.0 # CI trigger trigger: batch: true branches: include: - master paths: exclude: - Tools jobs: - job: Public_Samples_Build timeoutInMinutes: 90 strategy: maxParallel: 8 matrix: Release_x64: BuildPlatform: x64 BuildConfiguration: Release Debug_x64: BuildPlatform: x64 BuildConfiguration: Debug Release_x86: BuildPlatform: x86 BuildConfiguration: Release Debug_x86: BuildPlatform: x86 BuildConfiguration: Debug steps: - task: PowerShell@2 displayName: 'Clone Git Submodules' inputs: targetType: inline script: git submodule update --init --recursive - task: NuGetToolInstaller@1 displayName: 'Install NuGet 5.11.0' inputs: versionSpec: '5.11.0' - task: PowerShell@2 displayName: 'Install the win 10 sdk v19041 if necessary' inputs: targetType: inline script: choco install windows-sdk-10-version-2004-all -y - task: PowerShell@1 displayName: OpenCV - Configure CMake inputs: scriptName: external/tools/CMakeConfigureOpenCV.ps1 workingDirectory: $(System.ArtifactsDirectory) arguments: > -Architecture $(BuildPlatform) - task: VSBuild@1 displayName: 'OpenCV - Build' inputs: solution: 'build/external/opencv/cmake_config/$(BuildPlatform)/OpenCV.sln"' vsVersion: "17.0" msbuildArgs: '/p:Configuration=$(BuildConfiguration) /t:Build /p:LinkIncremental=false /p:DebugSymbols=false /p:DebugType=None' configuration: '$(BuildConfiguration)' msbuildArchitecture: x64 createLogFile: true condition: succeededOrFailed() - task: VSBuild@1 displayName: 'OpenCV - Install' inputs: solution: 'build/external/opencv/cmake_config/$(BuildPlatform)/INSTALL.vcxproj' vsVersion: "17.0" msbuildArgs: '/p:Configuration=$(BuildConfiguration) /p:LinkIncremental=false /p:DebugSymbols=false /p:DebugType=None' configuration: '$(BuildConfiguration)' msbuildArchitecture: x64 createLogFile: true condition: succeededOrFailed() - task: PowerShell@2 displayName: 'Restore WinMLSamplesGalleryNative Nuget Packages' inputs: targetType: 'inline' script: | $src_root_dir = $Env:BUILD_SOURCESDIRECTORY; $solution_dir = [System.IO.Path]::Combine($src_root_dir, 'Samples', 'WinMLSamplesGallery') $csproj = [System.IO.Path]::Combine($solution_dir, 'WinMLSamplesGalleryNative', 'WinMLSamplesGalleryNative.vcxproj') nuget restore $csproj -SolutionDirectory $solution_dir - task: VSBuild@1 displayName: 'Build WinMLSamplesGallery Debug' inputs: solution: 'Samples/WinMLSamplesGallery/WinMLSamplesGallery.sln' vsVersion: "17.0" msbuildArgs: '/p:WindowsTargetPlatformVersion=$(WindowsTargetPlatformVersion) /t:Restore,Clean,Build' platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArchitecture: x64 createLogFile: true condition: and(succeededOrFailed(), eq(variables['BuildConfiguration'], 'Debug')) - task: VSBuild@1 displayName: 'Build And Publish WinMLSamplesGallery Release' inputs: solution: 'Samples/WinMLSamplesGallery/WinMLSamplesGallery.sln' vsVersion: "17.0" msbuildArgs: '/p:UapAppxPackageBuildMode=SideloadOnly /p:AppxPackageSigningEnabled=false /p:AppxBundle=Always "/p:AppxBundlePlatforms=x86|x64|arm64" /p:WindowsTargetPlatformVersion=$(WindowsTargetPlatformVersion) /t:Restore,Clean,Build,Publish' platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArchitecture: x64 createLogFile: true condition: and(succeededOrFailed(), eq(variables['BuildConfiguration'], 'Release')) - task: VSBuild@1 displayName: 'Build UI test solution Testing/**/SamplesTest.sln' inputs: solution: 'Testing/**/SamplesTest.sln' vsVersion: "17.0" msbuildArgs: '-v:diag /p:OutDir=$(System.DefaultWorkingDirectory)\bin\$(BuildPlatform)\$(BuildConfiguration)\SamplesTest\ /p:WindowsTargetPlatformVersion=$(WindowsTargetPlatformVersion) /t:Restore,Clean,Build' platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArchitecture: x64 createLogFile: true condition: succeededOrFailed() - task: VSBuild@1 displayName: 'Build MNIST-Tutorial-cs Sample' inputs: solution: 'Samples/MNIST/Tutorial/cs/mnist_demo.sln' vsVersion: "17.0" msbuildArgs: '-v:diag /p:OutDir=$(System.DefaultWorkingDirectory)\bin\$(BuildPlatform)\$(BuildConfiguration)\MNIST-Tutorial\ /p:AppxPackageSigningEnabled=false /p:WindowsTargetPlatformVersion=$(WindowsTargetPlatformVersion) /t:Restore,Clean,Build' platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArchitecture: x64 createLogFile: true condition: succeededOrFailed() - task: VSBuild@1 displayName: 'Build MNIST-UWP-cs Sample' inputs: solution: 'Samples/MNIST/UWP/cs/mnist_demo.sln' vsVersion: "17.0" msbuildArgs: '-v:diag /p:OutDir=$(System.DefaultWorkingDirectory)\bin\$(BuildPlatform)\$(BuildConfiguration)\MNIST-cs\ /p:AppxBundle=Never /p:AppxPackageSigningEnabled=false /p:WindowsTargetPlatformVersion=$(WindowsTargetPlatformVersion) /t:Restore,Clean,Build' platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)_NuGet' msbuildArchitecture: x64 createLogFile: true condition: succeededOrFailed() - task: VSBuild@1 displayName: 'Build FNSCandyStyleTransfer-UWP-CS Sample' inputs: solution: Samples/FNSCandyStyleTransfer/UWP/CS/snapcandy.sln vsVersion: "17.0" msbuildArgs: '-v:diag /p:OutDir=$(System.DefaultWorkingDirectory)\bin\$(BuildPlatform)\$(BuildConfiguration)\FNSCandyStyleTransfer\ /p:AppxPackageSigningEnabled=false /p:WindowsTargetPlatformVersion=$(WindowsTargetPlatformVersion) /t:Restore,Clean,Build' platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArchitecture: x64 createLogFile: true condition: succeededOrFailed() - task: VSBuild@1 displayName: 'Build MNIST-UWP-cppcx Sample' inputs: solution: 'Samples/MNIST/UWP/cppcx/mnist_cppcx.sln' vsVersion: "17.0" msbuildArgs: '-v:diag /p:OutDir=$(System.DefaultWorkingDirectory)\bin\$(BuildPlatform)\$(BuildConfiguration)\MNIST-cppcx\ /p:AppxPackageSigningEnabled=false /p:WindowsTargetPlatformVersion=$(WindowsTargetPlatformVersion) /t:Restore,Clean,Build' platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' msbuildArchitecture: x64 createLogFile: true condition: succeededOrFailed() - task: CopyFiles@2 inputs: targetFolder: '$(Build.ArtifactStagingDirectory)\$(BuildPlatform)\$(BuildConfiguration)\' sourceFolder: 'Samples\WinMLSamplesGallery\WinMLSamplesGallery (Package)\bin\$(BuildPlatform)\$(BuildConfiguration)\' Contents: | **\SamplesTest\** **\AppPackages\** condition: succeededOrFailed() - task: CopyFiles@2 inputs: targetFolder: '$(Build.ArtifactStagingDirectory)\$(BuildPlatform)\$(BuildConfiguration)\' sourceFolder: 'Samples\WinMLSamplesGallery\WinMLSamplesGallery (Package)\bin\$(BuildPlatform)\$(BuildConfiguration)\' Contents: | ?(AdapterSelection|CustomOperator|CustomTensorization)**\* SqueezeNetObjectDetection\* condition: succeededOrFailed() - task: PowerShell@2 displayName: 'Move App Packages' inputs: targetType: 'inline' script: 'mv Samples/WinMLSamplesGallery/"WinMLSamplesGallery (Package)"/AppPackages $(Build.ArtifactStagingDirectory)\$(BuildPlatform)\$(BuildConfiguration)\AppPackages' condition: and(succeededOrFailed(), eq(variables['BuildConfiguration'], 'Release')) - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: Samples' inputs: pathtoPublish: '$(Build.ArtifactStagingDirectory)' artifactName: WinMLPublicSamples condition: succeededOrFailed()