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-05-22 11:48:05 +08:00
|
|
|
- task: BatchScript@1
|
|
|
|
displayName: 'Build vcpkg'
|
|
|
|
inputs:
|
|
|
|
filename: 'bootstrap-vcpkg.bat'
|
2020-04-22 08:12:21 +08:00
|
|
|
- powershell: |
|
2020-05-28 09:40:23 +08:00
|
|
|
.\vcpkg.exe x-ci-clean
|
2020-05-22 11:48:05 +08:00
|
|
|
$skipList = ./scripts/azure-pipelines/generate-skip-list.ps1 -Triplet "${{ parameters.triplet }}" -BaselineFile "$(System.DefaultWorkingDirectory)\scripts\ci.baseline.txt"
|
|
|
|
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" ) {
|
|
|
|
.\vcpkg.exe install protobuf:x86-windows boost-build:x86-windows sqlite3:x86-windows
|
|
|
|
}
|
|
|
|
|
2020-05-22 11:48:05 +08:00
|
|
|
$command = ".\vcpkg.exe ci ${{ parameters.triplet }} --x-xunit=`"$(System.ArtifactsDirectory)\xml-results\${{ parameters.triplet }}.xml`" --exclude=$skipList --binarycaching"
|
|
|
|
Set-Content -Path 'run_ci.cmd' -Value $command -Encoding ASCII
|
|
|
|
displayName: 'Write Test Modified Ports Batch File'
|
|
|
|
- task: BatchScript@1
|
|
|
|
displayName: '** Test Modified Ports **'
|
|
|
|
inputs:
|
|
|
|
filename: 'run_ci.cmd'
|
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-04-29 13:16:12 +08:00
|
|
|
arguments: '-baselineFile "$(System.DefaultWorkingDirectory)\scripts\ci.baseline.txt" -logDir "$(System.ArtifactsDirectory)\xml-results" -failurelogDir "archives\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()
|