Windows-Machine-Learning/azure-pipelines-samples.yml

155 строки
4.7 KiB
YAML

resources:
- repo: self
clean: true
variables:
SamplesBin: SamplesBin
WINDOWS_WINMD: C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.18362.0\Windows.winmd
WindowsTargetPlatformVersion: 10.0.18362.0
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
pool:
vmImage: 'windows-latest'
# pool:
# name: DirectML_BuildPool
# demands: agent.osversion -equals 10.0.17763
# CI trigger
trigger:
batch: true
branches:
include:
- master
paths:
exclude:
- Tools
# PR validation trigger
pr:
branches:
include:
- master
paths:
exclude:
- Tools
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 v18362 if necessary'
inputs:
targetType: inline
script: if (-not (Test-Path "${ENV:programfiles(x86)}\windows Kits\10\include\10.0.18362.0\")) { choco install windows-sdk-10-version-1903-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: "16.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: "16.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'
inputs:
solution: 'Samples/WinMLSamplesGallery/WinMLSamplesGallery.sln'
vsVersion: "16.0"
msbuildArgs: '/p:OutDir=$(System.DefaultWorkingDirectory)\bin\$(BuildPlatform)\$(BuildConfiguration)\WinMLSamplesGallery\ /p:WindowsTargetPlatformVersion=$(WindowsTargetPlatformVersion) /t:Restore,Clean,Build'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArchitecture: x64
createLogFile: true
condition: succeededOrFailed()
# TODO: Add previously failing build tasks
- task: CopyFiles@2
inputs:
targetFolder: '$(Build.ArtifactStagingDirectory)\$(BuildPlatform)\$(BuildConfiguration)\'
sourceFolder: '$(System.DefaultWorkingDirectory)\bin\$(BuildPlatform)\$(BuildConfiguration)\'
Contents: |
**\SamplesTest\**
**\AppPackages\**
condition: succeededOrFailed()
- task: CopyFiles@2
inputs:
targetFolder: '$(Build.ArtifactStagingDirectory)\$(BuildPlatform)\$(BuildConfiguration)\'
sourceFolder: '$(System.DefaultWorkingDirectory)\bin\$(BuildPlatform)\$(BuildConfiguration)\'
Contents: |
?(AdapterSelection|CustomOperator|CustomTensorization)**\*
SqueezeNetObjectDetection\*
condition: succeededOrFailed()
- task: CopyFiles@2
inputs:
targetFolder: '$(Build.ArtifactStagingDirectory)\$(BuildPlatform)\$(BuildConfiguration)\SharedContent'
sourceFolder: 'SharedContent'
contents: '**\*'
condition: succeededOrFailed()
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: Samples'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: WinMLPublicSamples
condition: succeededOrFailed()