2020-04-22 08:12:21 +08:00
|
|
|
# Copyright (c) Microsoft Corporation.
|
|
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
#
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
- job: ${{ parameters.jobName }}
|
|
|
|
pool:
|
2020-04-29 04:02:39 +08:00
|
|
|
name: ${{ parameters.poolName }}
|
2020-05-20 03:23:39 +08:00
|
|
|
workspace:
|
|
|
|
clean: resources
|
2020-04-22 08:12:21 +08:00
|
|
|
timeoutInMinutes: 1440 # 1 day
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- task: PowerShell@2
|
|
|
|
displayName: 'Initialize Environment'
|
|
|
|
inputs:
|
|
|
|
filePath: 'scripts/azure-pipelines/windows/initialize-environment.ps1'
|
2020-06-04 10:31:28 +08:00
|
|
|
# Note: D: is the Azure machines' temporary disk.
|
|
|
|
- task: CmdLine@2
|
2020-05-22 11:48:05 +08:00
|
|
|
displayName: 'Build vcpkg'
|
|
|
|
inputs:
|
2020-06-04 10:31:28 +08:00
|
|
|
script: |
|
|
|
|
set VCPKG_DOWNLOADS=D:\downloads
|
|
|
|
.\bootstrap-vcpkg.bat
|
2020-04-22 08:12:21 +08:00
|
|
|
- powershell: |
|
2020-06-09 13:46:18 +08:00
|
|
|
$env:VCPKG_DOWNLOADS='D:\downloads'
|
|
|
|
$commonArgs = @(
|
|
|
|
'--binarycaching',
|
|
|
|
'--x-binarysource=clear;files,W:\,upload',
|
|
|
|
'--x-buildtrees-root=E:\buildtrees',
|
|
|
|
'--x-install-root=E:\install',
|
|
|
|
'--x-packages-root=E:\packages'
|
|
|
|
)
|
|
|
|
|
|
|
|
.\vcpkg.exe x-ci-clean @commonArgs
|
2020-06-04 10:31:28 +08:00
|
|
|
$skipList = ./scripts/azure-pipelines/generate-skip-list.ps1 -Triplet "${{ parameters.triplet }}" -BaselineFile .\scripts\ci.baseline.txt
|
2020-05-22 11:48:05 +08:00
|
|
|
mkdir $(System.ArtifactsDirectory)\xml-results
|
2020-05-28 09:40:23 +08:00
|
|
|
# WORKAROUND: the x86-windows flavors of these are needed for all cross-compilation, but they are not auto-installed.
|
|
|
|
# Install them so the CI succeeds:
|
|
|
|
if ( "${{ parameters.triplet }}" -notmatch "x86-windows" -and "${{ parameters.triplet }}" -notmatch "x64-windows" ) {
|
2020-06-09 13:46:18 +08:00
|
|
|
.\vcpkg.exe install protobuf:x86-windows boost-build:x86-windows sqlite3:x86-windows @commonArgs
|
2020-05-28 09:40:23 +08:00
|
|
|
}
|
|
|
|
|
2020-06-09 13:46:18 +08:00
|
|
|
.\vcpkg.exe ci ${{ parameters.triplet }} --x-xunit=`"$(System.ArtifactsDirectory)\xml-results\${{ parameters.triplet }}.xml`" --exclude=$skipList @commonArgs
|
2020-05-22 11:48:05 +08:00
|
|
|
displayName: '** Test Modified Ports **'
|
2020-04-22 08:12:21 +08:00
|
|
|
- task: PowerShell@2
|
|
|
|
displayName: 'Analyze results and prepare test logs'
|
|
|
|
inputs:
|
|
|
|
failOnStderr: true
|
|
|
|
filePath: 'scripts/azure-pipelines/analyze-test-results.ps1'
|
2020-06-04 10:31:28 +08:00
|
|
|
arguments: '-baselineFile .\scripts\ci.baseline.txt -logDir "$(System.ArtifactsDirectory)\xml-results" -failurelogDir "W:\fail" -outputDir "$(Build.ArtifactStagingDirectory)" -errorOnRegression -triplets "${{ parameters.triplet }}"'
|
2020-04-22 08:12:21 +08:00
|
|
|
- task: PublishBuildArtifacts@1
|
2020-04-29 13:16:12 +08:00
|
|
|
displayName: 'Publish Artifact: ${{ parameters.triplet }} port build failure logs'
|
2020-04-22 08:12:21 +08:00
|
|
|
inputs:
|
|
|
|
PathtoPublish: '$(Build.ArtifactStagingDirectory)\failureLogs'
|
2020-04-29 13:16:12 +08:00
|
|
|
ArtifactName: '${{ parameters.triplet }} port build failure logs'
|
2020-04-22 08:12:21 +08:00
|
|
|
condition: failed()
|