241 строка
9.9 KiB
YAML
241 строка
9.9 KiB
YAML
# See https://aka.ms/yaml for details on the YAML schema and ADO jobs.
|
|
|
|
#name: $(BuildDefinitionName)-$(date:yyMM).$(date:dd)$(rev:rrr)
|
|
parameters:
|
|
MRTSourcesDirectory: $(Build.SourcesDirectory)\dev\MRTCore
|
|
MRTBinariesDirectory: $(Build.SourcesDirectory)\BuildOutput
|
|
|
|
steps:
|
|
- task: BatchScript@1
|
|
displayName: Set up environment
|
|
inputs:
|
|
filename: '${{ parameters.MRTSourcesDirectory }}\build\init.cmd'
|
|
arguments: /envonly $(buildPlatform)fre
|
|
modifyEnvironment: true
|
|
|
|
- task: NuGetToolInstaller@1
|
|
displayName: 'Use NuGet 5.11'
|
|
inputs:
|
|
versionSpec: 5.11
|
|
continueOnError: true
|
|
|
|
# Start restoring packages for C++ projects. The C# ones will be restored by the build task
|
|
# Note: 'NuGetCommand@2' is ambiguous so the specific task GUID must be used instead.
|
|
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
|
displayName: 'NuGet restore of core'
|
|
inputs:
|
|
command: 'custom'
|
|
arguments: 'restore ${{ parameters.MRTSourcesDirectory }}\mrt\core\src\packages.config -ConfigFile nuget.config -PackagesDirectory ${{ parameters.MRTSourcesDirectory }}\mrt\packages'
|
|
|
|
# NuGetCommand@2
|
|
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
|
displayName: 'NuGet restore of applicationmodel'
|
|
inputs:
|
|
command: 'custom'
|
|
arguments: 'restore ${{ parameters.MRTSourcesDirectory }}\mrt\Microsoft.Windows.ApplicationModel.Resources\src\packages.config -ConfigFile nuget.config -PackagesDirectory ${{ parameters.MRTSourcesDirectory }}\mrt\packages'
|
|
|
|
# NuGetCommand@2
|
|
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
|
displayName: 'NuGet restore of mrmex'
|
|
inputs:
|
|
command: 'custom'
|
|
arguments: 'restore ${{ parameters.MRTSourcesDirectory }}\mrt\mrm\mrmex\packages.config -ConfigFile nuget.config -PackagesDirectory ${{ parameters.MRTSourcesDirectory }}\mrt\packages'
|
|
|
|
# NuGetCommand@2
|
|
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
|
displayName: 'NuGet restore of mrmmin'
|
|
inputs:
|
|
command: 'custom'
|
|
arguments: 'restore ${{ parameters.MRTSourcesDirectory }}\mrt\mrm\mrmmin\packages.config -ConfigFile nuget.config -PackagesDirectory ${{ parameters.MRTSourcesDirectory }}\mrt\packages'
|
|
|
|
# NuGetCommand@2
|
|
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
|
displayName: 'NuGet restore of mrm unittests'
|
|
inputs:
|
|
command: 'custom'
|
|
arguments: 'restore ${{ parameters.MRTSourcesDirectory }}\mrt\mrm\unittests\packages.config -ConfigFile nuget.config -PackagesDirectory ${{ parameters.MRTSourcesDirectory }}\mrt\packages'
|
|
|
|
# - task: powershell@2
|
|
# displayName: 'Install the VS build tools'
|
|
# inputs:
|
|
# targetType: filePath
|
|
# filePath: ${{ parameters.MRTSourcesDirectory }}\build\Initialize-InstallMSBuild.ps1
|
|
# arguments: '-installDir ${{ parameters.MRTSourcesDirectory }}\.buildtools -logsDir ${{ parameters.MRTSourcesDirectory }}\msbuild-install-logs'
|
|
|
|
# - task: BatchScript@1
|
|
# displayName: Add the VS build tools to the path
|
|
# inputs:
|
|
# filename: '${{ parameters.MRTSourcesDirectory }}\build\SetMSBuildVars.cmd'
|
|
# arguments: '${{ parameters.MRTSourcesDirectory }}\.buildtools'
|
|
# modifyEnvironment: true
|
|
|
|
# - task: PublishBuildArtifacts@1
|
|
# displayName: 'Publish install logs'
|
|
# condition: Failed()
|
|
# inputs:
|
|
# PathtoPublish: '${{ parameters.MRTSourcesDirectory }}\msbuild-install-logs'
|
|
# artifactName: 'installlogs'
|
|
|
|
- task: powershell@2
|
|
displayName: 'Installing .NET SDK'
|
|
inputs:
|
|
targetType: filePath
|
|
workingDirectory: ${{ parameters.MRTSourcesDirectory }}\build
|
|
filePath: ${{ parameters.MRTSourcesDirectory }}\build\DownloadDotNetCoreSdk.ps1
|
|
|
|
- task: BatchScript@1
|
|
displayName: 'Use .NET SDK'
|
|
inputs:
|
|
filename: '${{ parameters.MRTSourcesDirectory }}\build\SetDotnetVars.cmd'
|
|
arguments: '${{ parameters.MRTSourcesDirectory }}'
|
|
modifyEnvironment: true
|
|
|
|
# - task: BatchScript@1
|
|
# displayName: 'Debug'
|
|
# inputs:
|
|
# filename: '$(Build.SourcesDirectory)\build\debug-pipeline.cmd'
|
|
- task: powershell@2
|
|
name: UpdateTraceloggingConfig
|
|
inputs:
|
|
targetType: 'inline'
|
|
script: |
|
|
$srcPath = Get-Childitem -Path 'dev\WindowsAppRuntime_Insights\packages' -File 'MicrosoftTelemetry.h' -Recurse
|
|
|
|
if (($srcPath -ne $null)){
|
|
$destinationPath = Get-Childitem -Path '${{ parameters.MRTSourcesDirectory }}\mrt\packages' -File 'Traceloggingconfig.h' -Recurse
|
|
|
|
if (($destinationPath -ne $null)){
|
|
Write-Host $srcPath.FullName, $destinationPath.FullName
|
|
Copy-Item -Force $srcPath.FullName $destinationPath.FullName
|
|
}
|
|
}
|
|
|
|
- task: MSBuild@1
|
|
displayName: 'build MrtCore'
|
|
inputs:
|
|
# msbuildLocationMethod: 'location'
|
|
# msbuildLocation: ${{ parameters.MRTSourcesDirectory }}\.buildtools\MSBuild\Current\Bin\MSBuild.exe
|
|
platform: '$(buildPlatform)'
|
|
solution: '${{ parameters.MRTSourcesDirectory }}\mrt\MrtCore.sln'
|
|
configuration: '$(buildConfiguration)'
|
|
msbuildArguments: '/restore /binaryLogger:$(Build.SourcesDirectory)/mrtcore.$(buildPlatform).$(buildConfiguration).binlog'
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish mrtcore binlog'
|
|
condition: succeededOrFailed()
|
|
inputs:
|
|
PathtoPublish: $(Build.SourcesDirectory)/mrtcore.$(buildPlatform).$(buildConfiguration).binlog
|
|
artifactName: binlogs
|
|
|
|
# Run the test locally on the Azure VM.
|
|
- task: VSTest@2
|
|
displayName: 'test MRT: ManagedTests'
|
|
condition: and(succeeded(), or(eq(variables['buildPlatform'], 'x86'), eq(variables['buildPlatform'], 'x64')))
|
|
inputs:
|
|
testSelector: 'testAssemblies'
|
|
testAssemblyVer2: '**\MrtCoreManagedTest.build.appxrecipe'
|
|
searchFolder: '${{ parameters.MRTBinariesDirectory }}\$(buildConfiguration)\$(buildPlatform)\MrtCoreManagedTest'
|
|
testRunTitle: 'test MRT: ManagedTests - $(buildPlatform)'
|
|
platform: '$(buildPlatform)'
|
|
configuration: '$(buildConfiguration)'
|
|
|
|
- task: VSTest@2
|
|
displayName: 'test MRT: UnitTests'
|
|
condition: and(succeeded(), or(eq(variables['buildPlatform'], 'x86'), eq(variables['buildPlatform'], 'x64')))
|
|
inputs:
|
|
testSelector: 'testAssemblies'
|
|
testAssemblyVer2: '**\MrmUnitTest.dll'
|
|
searchFolder: '${{ parameters.MRTBinariesDirectory }}\$(buildConfiguration)\$(buildPlatform)\MrmUnitTest'
|
|
testRunTitle: 'test MRT: UnitTests - $(buildPlatform)'
|
|
platform: '$(buildPlatform)'
|
|
configuration: '$(buildConfiguration)'
|
|
|
|
- task: VSTest@2
|
|
displayName: 'test MRT: BaseUnitTests'
|
|
condition: and(succeeded(), or(eq(variables['buildPlatform'], 'x86'), eq(variables['buildPlatform'], 'x64')))
|
|
inputs:
|
|
testSelector: 'testAssemblies'
|
|
testAssemblyVer2: '**\MrmBaseUnitTests.dll'
|
|
searchFolder: '${{ parameters.MRTBinariesDirectory }}\$(buildConfiguration)\$(buildPlatform)\MrmBaseUnitTests'
|
|
testRunTitle: 'test MRT: BaseUnitTests - $(buildPlatform)'
|
|
platform: '$(buildPlatform)'
|
|
configuration: '$(buildConfiguration)'
|
|
|
|
- task: VSTest@2
|
|
displayName: 'test MRT: UnpackagedTests'
|
|
condition: and(succeeded(), or(eq(variables['buildPlatform'], 'x86'), eq(variables['buildPlatform'], 'x64')))
|
|
inputs:
|
|
testSelector: 'testAssemblies'
|
|
testAssemblyVer2: '**\MRTCoreUnpackagedTests.dll'
|
|
searchFolder: '${{ parameters.MRTBinariesDirectory }}\$(buildConfiguration)\$(buildPlatform)\MrtCoreUnpackagedTests'
|
|
testRunTitle: 'test MRT: UnpackagedTests - $(buildPlatform)'
|
|
platform: '$(buildPlatform)'
|
|
configuration: '$(buildConfiguration)'
|
|
|
|
# Copy and Publish the test binaries so we can run them in Helix later.
|
|
- task: CopyFiles@2
|
|
displayName: 'copy mrtcore test binaries'
|
|
condition: and(succeeded(), or(eq(variables['buildPlatform'], 'x86'), eq(variables['buildPlatform'], 'x64')))
|
|
inputs:
|
|
SourceFolder: '${{ parameters.MRTBinariesDirectory }}\Release\$(buildPlatform)'
|
|
Contents: |
|
|
MrmBaseUnitTests\**
|
|
MrmUnitTest\**
|
|
MrtCoreManagedTest\**
|
|
MrtCoreUnpackagedTests\**
|
|
TargetFolder: '$(Agent.TempDirectory)\mrt_testbin\$(buildPlatform)'
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish mrtcore test binaries'
|
|
condition: and(succeeded(), or(eq(variables['buildPlatform'], 'x86'), eq(variables['buildPlatform'], 'x64')))
|
|
inputs:
|
|
PathtoPublish: '$(Agent.TempDirectory)\mrt_testbin\$(buildPlatform)'
|
|
artifactName: mrtcore_test_binaries_$(buildPlatform)
|
|
|
|
- task: ComponentGovernanceComponentDetection@0
|
|
inputs:
|
|
scanType: 'Register'
|
|
verbosity: 'Verbose'
|
|
alertWarningLevel: 'Medium'
|
|
failOnAlert: true
|
|
|
|
- task: CopyFiles@2
|
|
displayName: 'copy binaries for signing'
|
|
inputs:
|
|
SourceFolder: '${{ parameters.MRTBinariesDirectory }}\Release\$(buildPlatform)'
|
|
Contents: |
|
|
mrm\mrm.dll
|
|
mrm\mrm.lib
|
|
mrm\mrm.pdb
|
|
Microsoft.Windows.ApplicationModel.Resources\Microsoft.Windows.ApplicationModel.Resources.dll
|
|
Microsoft.Windows.ApplicationModel.Resources\Microsoft.Windows.ApplicationModel.Resources.pdb
|
|
TargetFolder: '$(Build.ArtifactStagingDirectory)\mrt_raw\lib\$(buildPlatform)'
|
|
flattenFolders: true
|
|
|
|
- task: CopyFiles@2
|
|
displayName: 'copy projection binaries and symbols for signing'
|
|
condition: and(succeeded(), eq(variables['buildPlatform'], 'x86'))
|
|
inputs:
|
|
SourceFolder: '${{ parameters.MRTBinariesDirectory }}\Release\$(buildPlatform)\Microsoft.Windows.ApplicationModel.Resources.Projection'
|
|
Contents: |
|
|
Microsoft.Windows.ApplicationModel.Resources.Projection.dll
|
|
Microsoft.Windows.ApplicationModel.Resources.Projection.pdb
|
|
TargetFolder: '$(Build.ArtifactStagingDirectory)\mrt_raw\lib\anycpu\net5.0'
|
|
flattenFolders: false
|
|
|
|
- task: CopyFiles@2
|
|
displayName: 'copy winmd for signing'
|
|
condition: and(succeeded(), eq(variables['buildPlatform'], 'x86'))
|
|
inputs:
|
|
SourceFolder: '${{ parameters.MRTBinariesDirectory }}\Release\$(buildPlatform)\Microsoft.Windows.ApplicationModel.Resources'
|
|
Contents: |
|
|
Microsoft.Windows.ApplicationModel.Resources.winmd
|
|
TargetFolder: '$(Build.ArtifactStagingDirectory)\mrt_raw\lib\anycpu'
|
|
flattenFolders: true
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact: Binaries'
|
|
inputs:
|
|
PathtoPublish: '$(Build.ArtifactStagingDirectory)\mrt_raw'
|
|
ArtifactName: 'mrtcore_binaries'
|