diff options
| author | Billy O'Neal <bion@microsoft.com> | 2020-07-02 20:20:07 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-02 20:20:07 -0700 |
| commit | a28bfe76740349b519d4737260dad8e160b41f6c (patch) | |
| tree | a216ae08f54aab4d73892107ab64d4778fc0d2c9 /scripts | |
| parent | f24543e83134c0199df370d683f69641fc66c44a (diff) | |
| download | vcpkg-a28bfe76740349b519d4737260dad8e160b41f6c.tar.gz vcpkg-a28bfe76740349b519d4737260dad8e160b41f6c.zip | |
[vcpkg] Remove the tombstones and 'ignore' baseline concepts. (#12197)
This changes our PR builds to treat 'fail' in the ci.baseline.txt as 'skip' instead of using tombstones.
We currently have large numbers of spurious failures that get enshrined in PRs through no fault of a PR author, removing the tombstones concept will fix those by allowing the user to retry. This does mean we accept some risk of not detecting when a port is 'fixed', but that failure is reasonable for us to handle after we see it in CI, but that seems worth it given that it lets us get rid of the tombstone concept.
This also helps out the binary caching feature, because we don't have to figure out how to productize tombstones.
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/azure-pipelines/analyze-test-results.ps1 | 374 | ||||
| -rwxr-xr-x | scripts/azure-pipelines/generate-skip-list.ps1 | 11 | ||||
| -rw-r--r-- | scripts/azure-pipelines/linux/azure-pipelines.yml | 8 | ||||
| -rw-r--r-- | scripts/azure-pipelines/osx/azure-pipelines.yml | 8 | ||||
| -rwxr-xr-x | scripts/azure-pipelines/test-modified-ports.ps1 | 22 | ||||
| -rw-r--r-- | scripts/azure-pipelines/windows/azure-pipelines.yml | 8 | ||||
| -rw-r--r-- | scripts/ci.baseline.txt | 166 |
7 files changed, 94 insertions, 503 deletions
diff --git a/scripts/azure-pipelines/analyze-test-results.ps1 b/scripts/azure-pipelines/analyze-test-results.ps1 index 9e6d09d20..5bebe985c 100755 --- a/scripts/azure-pipelines/analyze-test-results.ps1 +++ b/scripts/azure-pipelines/analyze-test-results.ps1 @@ -15,24 +15,11 @@ Then, uploads the logs from any unexpected failures. .PARAMETER logDir Directory of xml test logs to analyze. -.PARAMETER failurelogDir -Path to the failure logs that need to be published to azure for inspection. - -.PARAMETER outputDir -Where to write out the results of the analysis. - .PARAMETER allResults Include tests that have no change from the baseline in the output. -.PARAMETER errorOnRegression -Output an error on test regressions. -This will give a clean message in the build pipeline. - -.PARAMETER noTable -Don't create or upload the markdown table of results - -.PARAMETER triplets -A list of triplets to analyze; defaults to all triplets. +.PARAMETER triplet +The triplet to analyze. .PARAMETER baselineFile The path to the ci.baseline.txt file in the vcpkg repository. @@ -41,14 +28,9 @@ The path to the ci.baseline.txt file in the vcpkg repository. Param( [Parameter(Mandatory = $true)] [string]$logDir, - [Parameter(Mandatory = $true)] - [string]$failurelogDir, - [Parameter(Mandatory = $true)] - [string]$outputDir, [switch]$allResults, - [switch]$errorOnRegression, - [switch]$noTable, - [string[]]$triplets = @(), + [Parameter(Mandatory = $true)] + [string]$triplet, [Parameter(Mandatory = $true)] [string]$baselineFile ) @@ -59,25 +41,6 @@ if ( -not (Test-Path $logDir) ) { [System.Console]::Error.WriteLine("Log directory does not exist: $logDir") exit } -if ( -not (Test-Path $outputDir) ) { - [System.Console]::Error.WriteLine("output directory does not exist: $outputDir") - exit -} - -if ( $triplets.Count -eq 0 ) { - $triplets = @( - "x64-linux", - "x64-osx", - "arm-uwp", - "arm64-windows", - "x64-osx", - "x64-uwp", - "x64-windows-static", - "x64-windows", - "x86-windows" - ) -} - <# .SYNOPSIS @@ -402,260 +365,6 @@ function combine_results { <# .SYNOPSIS -Takes the combined results object and writes it to an xml file. - -.DESCRIPTION -write_xunit_results takes the results object from combine_results, and writes the -results XML file to the correct location for the CI system to pick it up. - -.PARAMETER combined_results -The results object from combine_results. -#> -function write_xunit_results { - [CmdletBinding()] - Param( - $combined_results - ) - $allTests = $combined_results.allTests - $triplet = $combined_results.collectionName - - $filePath = "$outputDir\$triplet.xml" - if (Test-Path $filePath) { - Write-Verbose "removing old file $filepath" - rm $filePath - } - Write-Verbose "output filename: $filepath" - - $xmlWriter = New-Object System.Xml.XmlTextWriter($filePath, $Null) - $xmlWriter.Formatting = "Indented" - $xmlWriter.IndentChar = "`t" - - $xmlWriter.WriteStartDocument() - $xmlWriter.WriteStartElement("assemblies") - $xmlWriter.WriteStartElement("assembly") - $xmlWriter.WriteAttributeString("name", $combined_results.assemblyName) - $xmlWriter.WriteAttributeString("run-date", $combined_results.assemblyStartDate) - $xmlWriter.WriteAttributeString("run-time", $combined_results.assemblyStartTime) - $xmlWriter.WriteAttributeString("time", $combined_results.assemblyTime) - - $xmlWriter.WriteStartElement("collection") - $xmlWriter.WriteAttributeString("name", $triplet) - $xmlWriter.WriteAttributeString("time", $combined_results.collectionTime) - - foreach ($testName in $allTests.Keys) { - $test = $allTests[$testName] - - $xmlWriter.WriteStartElement("test") - - $fullTestName = "$($testName):$triplet" - $xmlWriter.WriteAttributeString("name", $fullTestName) - $xmlWriter.WriteAttributeString("method", $fullTestName) - $xmlWriter.WriteAttributeString("time", $test.time) - $xmlWriter.WriteAttributeString("result", $test.result) - - switch ($test.result) { - "Pass" { } # Do nothing - "Fail" { - $xmlWriter.WriteStartElement("failure") - $xmlWriter.WriteStartElement("message") - $xmlWriter.WriteCData($test.message) - $xmlWriter.WriteEndElement() #message - $xmlWriter.WriteEndElement() #failure - } - "Skip" { - $xmlWriter.WriteStartElement("reason") - $xmlWriter.WriteCData($test.message) - $xmlWriter.WriteEndElement() #reason - } - } - - $xmlWriter.WriteEndElement() # test - } - - - $xmlWriter.WriteEndElement() # collection - $xmlWriter.WriteEndElement() # assembly - $xmlWriter.WriteEndElement() # assemblies - $xmlWriter.WriteEndDocument() - $xmlWriter.Flush() - $xmlWriter.Close() -} - -<# -.SYNOPSIS -Saves the failure logs, and prints information to the screen for CI. - -.DESCRIPTION -save_failure_logs takes the combined_results object, saves the failure -logs to the correct location for the CI to pick them up, and writes pretty -information to the screen for the CI logs, so that one knows what's wrong. - -.PARAMETER combined_results -The results object from combine_results. -#> -function save_failure_logs { - [CmdletBinding()] - Param( - $combined_results - ) - $triplet = $combined_results.collectionName - $allTests = $combined_results.allTests - - # abi_tags of missing results (if any exist) - $missing_results = @() - - foreach ($testName in $allTests.Keys) { - $test = $allTests[$testName] - if ($test.result -eq "Fail") { - $path_to_failure_Logs = Join-Path "$outputDir" "failureLogs" - if ( -not (Test-Path $path_to_failure_Logs)) { - mkdir $path_to_failure_Logs | Out-Null - } - $path_to_triplet_Logs = Join-Path $path_to_failure_Logs "$triplet" - if ( -not (Test-Path $path_to_triplet_Logs)) { - mkdir $path_to_triplet_Logs | Out-Null - } - - $abi_tag = $test.abi_tag - $sourceDirectory = Join-Path "$failurelogDir" "$($abi_tag.substring(0,2))" - $sourceFilename = Join-Path $sourceDirectory "$abi_tag.zip" - Write-Verbose "searching for $sourceFilename" - - if ( Test-Path $sourceFilename) { - Write-Verbose "found failure log file" - - Write-Verbose "Uncompressing $sourceFilename to $outputDir\failureLogs\$triplet\" - Write-Host "Uncompressing $sourceFilename to $outputDir\failureLogs\$triplet\" - - $destination = Join-Path (Join-Path "$outputDir" "failureLogs") "$triplet" - - Expand-Archive -Path $sourceFilename -Destination $destination -Force - } - elseif ($test.currentState -eq "Pass") { - # The port is building, but is marked as expected to fail. There are no failure logs. - # Write a log with instructions how to fix it. - Write-Verbose "The port is building but marked as expected to fail, adding readme.txt with fixit instructions" - - $out_filename = Join-Path (Join-Path (Join-Path (Join-Path "$outputDir" "failureLogs") "$triplet") "$($test.name)") "readme.txt" - - $message = "Congradulations! The port $($test.name) builds for $triplet!`n" - $message += "For the CI tests to recognize this, please update ci.baseline.txt in your PR.`n" - $message += "Remove the line that looks like this:`n" - $message += " $($test.name):$triplet=fail`n" - $message | Out-File $out_filename -Encoding ascii - } - else { - $missing_results += $test.abi_tag - Write-Verbose "Missing failure logs for $($test.name)" - Join-Path (Join-Path (Join-Path "$outputDir" "failureLogs") "$triplet" ) "$($test.name)" | % { mkdir $_ } | Out-Null - } - - - - if ((Convert-Path "$outputDir\failureLogs\$triplet\$($test.name)" | Get-ChildItem).count -eq 0) { - Write-Verbose "The logs are empty, adding readme.txt" - - $readme_path = Join-Path (Join-Path (Join-Path (Join-Path "$outputDir" "failureLogs") "$triplet") "$($test.name)") "readme.txt" - - $message = "There are no build logs for $($test.name) build.`n" - $message += "This is usually because the build failed early and outside of a task that is logged.`n" - $message += "See the console output logs from vcpkg for more information on the failure.`n" - $message += "If the console output of the $($test.name) is missing you can trigger a rebuild`n" - $message += "in the test system by making any whitespace change to one of the files under`n" - $message += "the ports/$($test.name) directory or by asking a member of the vcpkg team to remove the`n" - $message += "tombstone for abi tag $abi_tag`n" - $message | Out-File $readme_path -Encoding ascii - } - } - } - - if ($missing_results.count -ne 0) { - $missing_tag_filename = Join-Path (Join-Path (Join-Path "$outputDir" "failureLogs") "$triplet") "missing_abi_tags.txt" - $missing_results | Out-File -FilePath $missing_tag_filename -Encoding ascii - } - Write-Verbose "$triplet logs saved: $(Get-ChildItem $outputDir\failureLogs\$triplet\ -ErrorAction Ignore)" - -} - -<# -.SYNOPSIS -Writes a pretty summary table to the CI log. - -.DESCRIPTION -Takes a hashtable which maps triplets to objects returned by the combine_results -cmdlet, and a list of missing triplets, and prints a really pretty summary table -to the CI logs. - -.PARAMETER complete_results -A hashtable which maps triplets to combine_results objects. - -.PARAMETER missing_triplets -A list of missing triplets. -#> -function write_summary_table { - [CmdletBinding()] - Param( - $complete_results, - $missing_triplets - ) - - $table = "" - - foreach ($triplet in $complete_results.Keys) { - $triplet_results = $complete_results[$triplet] - - if ($triplet_results.allTests.count -eq 0) { - $table += "$triplet CI build test results are clean`n`n" - } - else { - $portWidth = $triplet.length - #calculate the width of the first column - foreach ($testName in $triplet_results.allTests.Keys) { - $test = $triplet_results.allTests[$testName] - if ($portWidth -lt $test.name.length) { - $portWidth = $test.name.length - } - } - - # the header - $table += "|{0,-$portWidth}|result|features|notes`n" -f $triplet - $table += "|{0}|----|--------|-----`n" -f ("-" * $portWidth) - - # add each port results - foreach ($testName in $triplet_results.allTests.Keys | Sort-Object) { - $test = $triplet_results.allTests[$testName] - $notes = "" - if ($test.result -eq 'Fail') { - $notes = "**Regression**" - } - elseif ($test.result -eq 'Skip') { - if ($test.currentResult -eq 'Fail') { - $notes = "Previously skipped, not a regression" - } - else { - $notes = "Missing port dependency" - } - } - $notes = $test.message - $table += "|{0,-$portWidth}|{1,-4}|{2}|{3}`n" -f $test.name, $test.currentResult, $test.features, $notes - } - $table += "`n" - } - if ($triplet_results.ignored.Count -ne 0) { - $table += "The following build failures were ignored: $($triplet_results.ignored)`n" - } - } - - # Add list of missing triplets to the table - foreach ($triplet in $missing_triplets.Keys) { - $table += "$triplet results are inconclusive because it is missing logs from test run`n`n" - } - - $table -} - -<# -.SYNOPSIS Writes short errors to the CI logs. .DESCRIPTION @@ -705,74 +414,27 @@ function write_errors_for_summary { $complete_results = @{ } -$missing_triplets = @{ } -foreach ( $triplet in $triplets) { - Write-Verbose "looking for $triplet logs" +Write-Verbose "looking for $triplet logs" - # The standard name for logs is: - # <triplet>.xml - # for example: - # x64-linux.xml +# The standard name for logs is: +# <triplet>.xml +# for example: +# x64-linux.xml - $current_test_hash = build_test_results( Convert-Path "$logDir\$($triplet).xml" ) - $baseline_results = build_baseline_results -baselineFile $baselineFile -triplet $triplet +$current_test_hash = build_test_results( Convert-Path "$logDir\$($triplet).xml" ) +$baseline_results = build_baseline_results -baselineFile $baselineFile -triplet $triplet - if ($current_test_hash -eq $null) { - [System.Console]::Error.WriteLine("Missing $triplet test results in current test run") - $missing_triplets[$triplet] = "test" - } - else { - Write-Verbose "combining results..." - $complete_results[$triplet] = combine_results -baseline $baseline_results -current $current_test_hash - } -} - -Write-Verbose "done analizing results" - -# If there is only one triplet, add the triplet name to the result table file -if ($triplets.Count -eq 1) { - $result_table_name = $triplets[0] +if ($current_test_hash -eq $null) { + [System.Console]::Error.WriteLine("Missing $triplet test results in current test run") + $missing_triplets[$triplet] = "test" } else { - $result_table_name = "" -} - -if (-not $noTable) { - $table_path = Join-Path "$outputDir" "result_table$result_table_name.md" - - write_summary_table -complete_results $complete_results -missing_triplets $missing_triplets | Out-File -FilePath $table_path -Encoding ascii - - Write-Host "" - cat $table_path - - Write-Host "##vso[task.addattachment type=Distributedtask.Core.Summary;name=$result_table_name issue summary;]$table_path" -} - -foreach ( $triplet in $complete_results.Keys) { - $combined_results = $complete_results[$triplet] - if ( $failurelogDir -ne "") { - save_failure_logs -combined_results $combined_results - } - - write_xunit_results -combined_results $combined_results + Write-Verbose "combining results..." + $complete_results[$triplet] = combine_results -baseline $baseline_results -current $current_test_hash } +Write-Verbose "done analyzing results" # emit error last. Unlike the table output this is going to be seen in the "status" section of the pipeline # and needs to be formatted for a single line. -if ($errorOnRegression) { - write_errors_for_summary -complete_results $complete_results - - if ($missing_triplets.Count -ne 0) { - $regression_log_directory = Join-Path "$outputDir" "failureLogs" - if ( -not (Test-Path $regression_log_directory)) { - mkdir $regression_log_directory | Out-Null - } - $file_path = Join-Path $regression_log_directory "missing_test_results.txt" - $message = "Test logs are missing for the following triplets: $($hash.Keys | %{"$($_)($($hash[$_]))"})`n" - $message += "Without this information the we are unable to determine if the build has regressions. `n" - $message += "Missing test logs are sometimes the result of failures in the pipeline infrastructure. `n" - $message += "If you beleave this is the case please alert a member of the vcpkg team to investigate. `n" - $message | Out-File $file_path -Encoding ascii - } -} +write_errors_for_summary -complete_results $complete_results diff --git a/scripts/azure-pipelines/generate-skip-list.ps1 b/scripts/azure-pipelines/generate-skip-list.ps1 index 11980d7ad..84b78b338 100755 --- a/scripts/azure-pipelines/generate-skip-list.ps1 +++ b/scripts/azure-pipelines/generate-skip-list.ps1 @@ -19,7 +19,8 @@ The path to the ci.baseline.txt file. [CmdletBinding()] Param( [string]$Triplet, - [string]$BaselineFile + [string]$BaselineFile, + [switch]$SkipFailures = $false ) $ErrorActionPreference = 'Stop' @@ -70,7 +71,13 @@ foreach ($port in $baselineForTriplet | ForEach-Object { $_ -replace ":.*$" }) { } # Format the skip list for the command line +if ($SkipFailures) { + $targetRegex = "=(?:skip|fail)$" +} else { + $targetRegex = "=skip$" +} + $skip_list = $baselineForTriplet ` - | Where-Object { $_ -match "=skip$" } ` + | Where-Object { $_ -match $targetRegex } ` | ForEach-Object { $_ -replace ":.*$" } [string]::Join(",", $skip_list) diff --git a/scripts/azure-pipelines/linux/azure-pipelines.yml b/scripts/azure-pipelines/linux/azure-pipelines.yml index 77842437f..65d6d3f1d 100644 --- a/scripts/azure-pipelines/linux/azure-pipelines.yml +++ b/scripts/azure-pipelines/linux/azure-pipelines.yml @@ -37,11 +37,7 @@ jobs: inputs:
failOnStderr: true
filePath: 'scripts/azure-pipelines/test-modified-ports.ps1'
- arguments: '-Triplet x64-linux -BuildReason $(Build.Reason) -ArchivesRoot /archives -WorkingRoot /mnt/vcpkg-ci -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory) -ArtifactsDirectory $(System.ArtifactsDirectory)'
- - task: PublishTestResults@2
- inputs:
- testResultsFiles: '$(System.ArtifactsDirectory)/xml-results/x64-linux.xml'
- condition: always()
+ arguments: '-Triplet x64-linux -BuildReason $(Build.Reason) -ArchivesRoot /archives -WorkingRoot /mnt/vcpkg-ci -ArtifactsDirectory $(System.ArtifactsDirectory)'
- bash: |
df -h
displayName: 'Report on Disk Space After Build'
@@ -49,6 +45,6 @@ jobs: - task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: x86-linux Build Failure Logs'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)/failureLogs'
+ PathtoPublish: '$(System.ArtifactsDirectory)/failure-logs'
ArtifactName: 'x64-linux port build failure logs'
condition: failed()
diff --git a/scripts/azure-pipelines/osx/azure-pipelines.yml b/scripts/azure-pipelines/osx/azure-pipelines.yml index 8008df45f..33685fd6b 100644 --- a/scripts/azure-pipelines/osx/azure-pipelines.yml +++ b/scripts/azure-pipelines/osx/azure-pipelines.yml @@ -41,11 +41,7 @@ jobs: inputs:
failOnStderr: true
filePath: 'scripts/azure-pipelines/test-modified-ports.ps1'
- arguments: '-Triplet x64-osx -BuildReason $(Build.Reason) -ArchivesRoot /Users/vagrant/Data/archives -WorkingRoot /Users/vagrant/Data -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory) -ArtifactsDirectory $(System.ArtifactsDirectory)'
- - task: PublishTestResults@2
- inputs:
- testResultsFiles: '$(System.ArtifactsDirectory)/xml-results/x64-osx.xml'
- condition: always()
+ arguments: '-Triplet x64-osx -BuildReason $(Build.Reason) -ArchivesRoot /Users/vagrant/Data/archives -WorkingRoot /Users/vagrant/Data -ArtifactsDirectory $(System.ArtifactsDirectory)'
- bash: |
df -h
displayName: 'Report on Disk Space After Build'
@@ -53,6 +49,6 @@ jobs: - task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: x64-osx port build failure logs'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)/failureLogs'
+ PathtoPublish: '$(System.ArtifactsDirectory)/failure-logs'
ArtifactName: 'x64-osx port build failure logs'
condition: failed()
diff --git a/scripts/azure-pipelines/test-modified-ports.ps1 b/scripts/azure-pipelines/test-modified-ports.ps1 index d6b59364e..9a30321b4 100755 --- a/scripts/azure-pipelines/test-modified-ports.ps1 +++ b/scripts/azure-pipelines/test-modified-ports.ps1 @@ -15,9 +15,6 @@ The location where the binary caching archives are stored. Shared across runs of .PARAMETER WorkingRoot
The location used as scratch space for 'installed', 'packages', and 'buildtrees' vcpkg directories.
-.PARAMETER ArtifactStagingDirectory
-The Azure Pipelines artifact staging directory. If not supplied, defaults to the current directory.
-
.PARAMETER ArtifactsDirectory
The Azure Pipelines artifacts directory. If not supplied, defaults to the current directory.
@@ -38,8 +35,6 @@ Param( [ValidateNotNullOrEmpty()]
$WorkingRoot,
[ValidateNotNullOrEmpty()]
- $ArtifactStagingDirectory = '.',
- [ValidateNotNullOrEmpty()]
$ArtifactsDirectory = '.',
$BuildReason = $null
)
@@ -61,11 +56,13 @@ $commonArgs = @( )
$binaryCachingMode = 'readwrite'
+$skipFailures = $false
if ([string]::IsNullOrWhiteSpace($BuildReason)) {
Write-Host 'Build reason not specified, defaulting to using binary caching in read write mode.'
}
elseif ($BuildReason -eq 'PullRequest') {
- Write-Host 'Build reason was Pull Request, using binary caching in read write mode.'
+ Write-Host 'Build reason was Pull Request, using binary caching in read write mode, skipping failures.'
+ $skipFailures = $true
}
else {
Write-Host "Build reason was $BuildReason, using binary caching in write only mode."
@@ -89,8 +86,13 @@ $xmlResults = Join-Path $ArtifactsDirectory 'xml-results' mkdir $xmlResults
$xmlFile = Join-Path $xmlResults "$Triplet.xml"
+$failureLogs = Join-Path $ArtifactsDirectory 'failure-logs'
+
& "./vcpkg$executableExtension" x-ci-clean @commonArgs
-$skipList = . "$PSScriptRoot/generate-skip-list.ps1" -Triplet $Triplet -BaselineFile "$PSScriptRoot/../ci.baseline.txt"
+$skipList = . "$PSScriptRoot/generate-skip-list.ps1" `
+ -Triplet $Triplet `
+ -BaselineFile "$PSScriptRoot/../ci.baseline.txt" `
+ -SkipFailures:$skipFailures
# 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:
@@ -98,7 +100,7 @@ if ($Triplet -in @('x64-uwp', 'arm64-windows', 'arm-uwp')) { .\vcpkg.exe install protobuf:x86-windows boost-build:x86-windows sqlite3:x86-windows @commonArgs
}
-& "./vcpkg$executableExtension" ci $Triplet --x-xunit=$xmlFile --exclude=$skipList @commonArgs
-& "$PSScriptRoot/analyze-test-results.ps1" -logDir $xmlResults -outputDir $ArtifactStagingDirectory `
- -failureLogDir (Join-Path $ArchivesRoot 'fail') -triplets $Triplet -errorOnRegression `
+& "./vcpkg$executableExtension" ci $Triplet --x-xunit=$xmlFile --exclude=$skipList --failure-logs=$failureLogs @commonArgs
+& "$PSScriptRoot/analyze-test-results.ps1" -logDir $xmlResults `
+ -triplet $Triplet `
-baselineFile .\scripts\ci.baseline.txt
diff --git a/scripts/azure-pipelines/windows/azure-pipelines.yml b/scripts/azure-pipelines/windows/azure-pipelines.yml index a20ee23bb..d7f34b3c7 100644 --- a/scripts/azure-pipelines/windows/azure-pipelines.yml +++ b/scripts/azure-pipelines/windows/azure-pipelines.yml @@ -49,11 +49,7 @@ jobs: inputs:
failOnStderr: true
filePath: 'scripts/azure-pipelines/test-modified-ports.ps1'
- arguments: '-Triplet ${{ parameters.triplet }} -BuildReason $(Build.Reason) -ArchivesRoot W:\ -WorkingRoot D:\ -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory) -ArtifactsDirectory $(System.ArtifactsDirectory)'
- - task: PublishTestResults@2
- inputs:
- testResultsFiles: '$(System.ArtifactsDirectory)/xml-results/${{ parameters.triplet }}.xml'
- condition: always()
+ arguments: '-Triplet ${{ parameters.triplet }} -BuildReason $(Build.Reason) -ArchivesRoot W:\ -WorkingRoot D:\ -ArtifactsDirectory $(System.ArtifactsDirectory)'
- task: PowerShell@2
displayName: 'Report on Disk Space After Build'
condition: always()
@@ -62,6 +58,6 @@ jobs: - task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: ${{ parameters.triplet }} port build failure logs'
inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)\failureLogs'
+ PathtoPublish: '$(System.ArtifactsDirectory)\failure-logs'
ArtifactName: '${{ parameters.triplet }} port build failure logs'
condition: failed()
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index ab8ea0e60..4ae2000d5 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -13,9 +13,6 @@ ## This is added to ports that may be flaky or conflict with other ## ports. Please comment for why a port is skipped so it can be ## removed when the issue is resolved. -## ignore - attempt to build the port, but do not fail the CI test if the -## port does not build. Any ignored build failures will be reported -## in the test summary. ## ## ## CI tested triplets: @@ -38,7 +35,7 @@ 3fd:x64-osx=fail 3fd:x64-windows=fail 3fd:x64-windows-static=fail -3fd:x86-windows=ignore +3fd:x86-windows=fail 7zip:arm64-windows=fail 7zip:arm-uwp=fail 7zip:x64-linux=fail @@ -64,9 +61,6 @@ angelscript:arm64-windows=fail angelscript:arm-uwp=fail antlr4:arm-uwp=fail antlr4:x64-uwp=fail -anyrpc:arm-uwp=ignore -anyrpc:x86-windows=ignore -anyrpc:x64-windows-static=ignore apr:arm-uwp=fail apr:x64-uwp=fail # Cross compiling CI machine cannot run gen_test_char to generate apr_escape_test_char.h @@ -107,10 +101,8 @@ aws-lambda-cpp:x64-windows=fail aws-lambda-cpp:x64-windows-static=fail aws-lambda-cpp:x86-windows=fail aws-lambda-cpp:x64-osx=fail -aws-sdk-cpp:x64-linux=ignore azure-c-shared-utility:arm-uwp=fail azure-c-shared-utility:x64-uwp=fail -basisu:x64-linux=ignore bde:arm64-windows=fail bde:arm-uwp=fail bde:x64-uwp=fail @@ -151,7 +143,6 @@ boost-fiber:arm-uwp=fail boost-fiber:arm64-windows=fail boost-fiber:x64-osx=fail boost-fiber:x64-uwp=fail -boost-fiber:x64-linux=ignore boost-filesystem:arm-uwp=fail boost-filesystem:x64-uwp=fail boost-iostreams:arm-uwp=fail @@ -175,11 +166,9 @@ breakpad:arm64-windows=fail bullet3:arm64-windows=fail bullet3:arm-uwp=fail bullet3:x64-uwp=fail -butteraugli:x64-linux=ignore caf:arm-uwp=fail caf:arm64-windows=fail caf:x64-uwp=fail -caf:x64-linux=ignore caffe2:x86-windows=fail caffe2:arm64-windows=fail cairomm:x64-linux=fail @@ -238,7 +227,6 @@ civetweb:arm-uwp = skip civetweb:x64-uwp = skip clapack:x64-uwp=fail clblas:arm64-windows=fail -clblast:x64-osx=ignore clblast:x64-linux=fail clblast:x64-windows-static=fail clockutils:x64-linux=fail @@ -270,15 +258,11 @@ cppcms:x64-osx=fail cppcms:x64-windows-static=fail cppfs:arm-uwp=fail cppfs:x64-uwp=fail -cppgraphqlgen:arm-uwp=ignore -cppgraphqlgen:x64-uwp=ignore -cppkafka:x64-linux=ignore cppmicroservices:arm64-windows=fail cppmicroservices:arm-uwp=fail cppmicroservices:x64-uwp=fail cpp-netlib:arm-uwp=fail cpp-netlib:x64-uwp=fail -cpp-netlib:x64-linux=ignore cpp-taskflow:x64-osx=fail cppcoro:x64-linux=fail cppcoro:arm-uwp=fail @@ -288,8 +272,7 @@ cppunit:arm-uwp=fail cppunit:x64-linux=fail cppunit:x64-osx=fail cppunit:x64-uwp=fail -cpr:x64-linux=ignore -cpuinfo:arm64-windows=ignore +cpuinfo:arm64-windows=fail crashpad:arm64-windows=fail crashpad:arm-uwp=fail crashpad:x64-linux=fail @@ -344,10 +327,10 @@ dlfcn-win32:x64-linux=fail dlfcn-win32:x64-osx=fail dlfcn-win32:x64-uwp=fail dmlc:arm-uwp=fail -dmlc:arm64-windows=ignore +dmlc:arm64-windows=fail dmlc:x64-uwp=fail -dmlc:x64-windows-static=ignore -dmlc:x86-windows=ignore +dmlc:x64-windows-static=fail +dmlc:x86-windows=fail dpdk:arm-uwp=fail dpdk:arm64-windows=fail dpdk:x64-linux=fail @@ -457,11 +440,11 @@ fmi4cpp:arm-uwp=fail fmi4cpp:x64-uwp=fail fmilib:arm64-windows=fail fmilib:arm-uwp=fail -fmilib:x64-linux=ignore +fmilib:x64-linux=fail fmilib:x64-uwp=fail -fmilib:x64-windows=ignore -fmilib:x64-windows-static=ignore -fmilib:x86-windows=ignore +fmilib:x64-windows=fail +fmilib:x64-windows-static=fail +fmilib:x86-windows=fail foonathan-memory:arm64-windows=fail foonathan-memory:arm-uwp=fail foonathan-memory:x64-uwp=fail @@ -480,11 +463,11 @@ freetds:x64-osx=fail freetds:x64-uwp=fail freetype-gl:x64-uwp=fail freexl:arm-uwp=fail -freexl:arm64-windows=ignore +freexl:arm64-windows=fail freexl:x64-uwp=fail -freexl:x86-windows=ignore -freexl:x64-windows=ignore -freexl:x64-windows-static=ignore +freexl:x86-windows=fail +freexl:x64-windows=fail +freexl:x64-windows-static=fail fribidi:arm64-windows=fail fribidi:arm-uwp=fail fribidi:x64-linux=fail @@ -508,7 +491,6 @@ gasol:arm-uwp=fail gasol:x64-uwp=fail gdcm:arm64-windows=fail gdcm:x64-linux = skip -geographiclib:x64-linux=ignore geos:arm-uwp=fail geos:x64-uwp=fail getopt:arm-uwp=fail @@ -540,7 +522,6 @@ glfw3:x64-uwp=fail glib:x64-uwp=fail glib:x64-windows-static=fail glib:x64-osx=fail -globjects:x64-linux=ignore gmmlib:arm64-windows=fail gmmlib:arm-uwp=fail gmmlib:x64-osx=fail @@ -570,7 +551,6 @@ gsoap:x64-linux=fail gsoap:x64-osx=fail gsoap:x64-uwp=fail gtk:x64-linux=fail -gtk:x86-windows=ignore guetzli:x64-osx=fail h3:arm64-windows=fail h3:arm-uwp=fail @@ -598,7 +578,6 @@ hpx:x64-linux=fail hwloc:arm64-windows=fail hwloc:arm-uwp=fail hwloc:x64-uwp=fail -hyperscan:x64-linux=ignore # hypre has a conflict with 'superlu' port hypre:x64-linux=skip hypre:x64-osx=skip @@ -616,7 +595,6 @@ ignition-msgs5:arm64-windows=fail ignition-msgs5:arm-uwp=fail ignition-msgs5:x64-uwp=fail ignition-msgs5:x64-osx=skip -imgui-sfml:x64-linux=ignore intel-ipsec:arm64-windows=fail intel-ipsec:arm-uwp=fail intel-ipsec:x64-osx=fail @@ -649,7 +627,6 @@ isal:x86-windows=fail itk:x64-windows=fail itk:x64-windows-static=fail itk:x86-windows=fail -ixwebsocket:x64-linux=ignore jack2:arm-uwp=fail jack2:x64-uwp=fail jaeger-client-cpp:arm64-windows=fail @@ -739,10 +716,9 @@ libfabric:arm-uwp=fail libfabric:x64-linux=fail libfabric:x64-osx=fail libfabric:x64-uwp=fail -libfabric:x64-windows=ignore +libfabric:x64-windows=fail libfabric:x64-windows-static=fail libfreenect2:arm64-windows=fail -libgd:x64-linux=ignore libgit2:arm-uwp=fail libgit2:x64-uwp=fail libgo:arm-uwp=fail @@ -824,9 +800,6 @@ libmupdf:x64-osx=fail libmysql:x86-windows=fail libnice:x64-linux=fail libnice:x64-osx=fail -libodb-boost:x64-linux=ignore -libodb-pgsql:x64-linux=ignore -libodb-pgsql:x64-windows=ignore libopenmpt:x64-linux=fail libopenmpt:x64-osx=fail libopusenc:arm-uwp=fail @@ -876,7 +849,6 @@ libpq:x64-uwp=fail libqcow:arm-uwp=fail libqcow:x64-uwp=fail libqcow:x64-windows-static=fail -librabbitmq:x64-linux=ignore libraqm:x64-windows-static=fail librdkafka:arm-uwp=fail librdkafka:x64-uwp=fail @@ -974,7 +946,6 @@ libxslt:x64-osx=fail libxslt:x64-uwp=fail libyuv:arm-uwp=fail libyuv:x64-uwp=fail -libzippp:x64-linux=ignore licensepp:arm-uwp=fail licensepp:x64-uwp=fail linenoise-ng:arm-uwp=fail @@ -1022,7 +993,6 @@ marl:arm-uwp=fail marl:x64-uwp=fail mathgl:x64-osx=fail mathgl:x64-uwp=fail -mathgl:x64-linux=ignore matio:x64-linux=fail matio:x64-osx=fail mbedtls:arm-uwp=fail @@ -1060,7 +1030,7 @@ mhook:x64-osx=fail mhook:x64-uwp=fail milerius-sfml-imgui:x64-osx=fail milerius-sfml-imgui:x64-windows-static=fail -milerius-sfml-imgui:x64-linux=ignore +milerius-sfml-imgui:x64-linux=fail mimalloc:arm64-windows=fail mimalloc:arm-uwp=fail mimalloc:x64-uwp=fail @@ -1116,13 +1086,13 @@ monkeys-audio:x64-uwp=fail monkeys-audio:x64-windows-static=fail moos-core:arm-uwp=fail moos-core:x64-uwp=fail -moos-core:x64-windows=ignore +moos-core:x64-windows=fail moos-core:x64-windows-static=fail -moos-core:x86-windows=ignore +moos-core:x86-windows=fail moos-essential:arm64-windows=fail moos-essential:x64-windows=fail moos-essential:x86-windows=fail -moos-essential:x64-linux=ignore +moos-essential:x64-linux=fail mozjpeg:arm64-windows = skip mozjpeg:arm-uwp = skip mozjpeg:x64-linux = skip @@ -1180,15 +1150,14 @@ nanorange:x64-windows=fail nanorange:x64-windows-static=fail nanorange:x86-windows=fail nanovg:arm-uwp=fail -nanovg:arm64-windows=ignore +nanovg:arm64-windows=fail nanovg:x64-uwp=fail -nanovg:x64-linux=ignore -nanovg:x64-windows=ignore -nanovg:x64-windows-static=ignore +nanovg:x64-linux=fail +nanovg:x64-windows=fail +nanovg:x64-windows-static=fail nanovg:x86-windows=skip nativefiledialog:arm-uwp=fail nativefiledialog:x64-uwp=fail -netcdf-cxx4:x64-linux=ignore nethost:x64-uwp=fail nethost:arm-uwp=fail nettle:x64-windows-static=skip @@ -1207,7 +1176,6 @@ nng:arm-uwp=fail nng:x64-uwp=fail nrf-ble-driver:arm-uwp=fail nrf-ble-driver:x64-uwp=fail -nrf-ble-driver:x64-linux=ignore numactl:arm64-windows=fail numactl:arm-uwp=fail numactl:x64-osx=fail @@ -1227,7 +1195,6 @@ octomap:x64-uwp=fail ode:arm64-windows=fail ode:arm-uwp=fail ode:x64-uwp=fail -ode:x64-linux=ignore offscale-libetcd-cpp:arm64-windows=fail offscale-libetcd-cpp:arm-uwp=fail offscale-libetcd-cpp:x64-uwp=fail @@ -1269,7 +1236,6 @@ opencensus-cpp:x86-windows=fail opencensus-cpp:x64-uwp=fail opencl:arm-uwp=fail opencl:x64-uwp=fail -opencolorio:x64-linux=ignore opencsg:x64-uwp=fail opencv2:arm64-windows = skip opencv2:arm-uwp = skip @@ -1294,9 +1260,8 @@ openexr:arm-uwp=fail openexr:x64-uwp=fail opengl:arm64-windows=fail opengl:arm-uwp=fail -openimageio:x64-linux=ignore -openmama:x64-windows=ignore -openmama:x86-windows=ignore +openmama:x64-windows=fail +openmama:x86-windows=fail openmama:x64-linux=fail openmama:x64-osx=fail openmesh:arm64-windows=fail @@ -1308,7 +1273,6 @@ openmpi:x64-uwp=fail openmpi:x64-windows=fail openmpi:x64-windows-static=fail openmpi:x86-windows=fail -openmvg:x64-linux=ignore openmvs:x64-linux=fail openni2:x64-uwp=fail openni2:x64-windows-static=fail @@ -1331,7 +1295,6 @@ openssl-windows:x64-osx=fail openssl-windows:x64-uwp=fail opentracing:arm-uwp=fail opentracing:x64-uwp=fail -openvdb:x64-linux=ignore openvdb:x64-osx=fail #openvdb:x64-windows-static=fail # https://github.com/microsoft/vcpkg/pull/10816#issuecomment-613784827 openvpn3:x64-osx=fail @@ -1353,7 +1316,6 @@ optional-bare:x64-windows-static = skip optional-bare:x86-windows = skip opusfile:arm-uwp=fail opusfile:x64-uwp=fail -orc:x64-linux=ignore orocos-kdl:arm-uwp=fail orocos-kdl:x64-uwp=fail osg:x86-windows=skip @@ -1362,11 +1324,6 @@ osgearth:x64-osx=fail osgearth:x64-linux=fail osgearth:x64-windows-static=fail osg-qt:x64-windows-static=fail -otl:x64-windows=ignore -otl:x64-windows-static=ignore -otl:x64-uwp=ignore -otl:x64-linux=ignore -otl:x86-windows=ignore paho-mqtt:arm-uwp=fail paho-mqtt:x64-uwp=fail pangolin:x64-linux=fail @@ -1374,8 +1331,6 @@ pangolin:x64-osx=fail pangolin:x64-uwp=fail pangolin:x64-windows-static=fail pangomm:x64-osx=fail -pangomm:x64-windows=ignore -pangomm:x86-windows=ignore pangomm:arm64-windows=fail parmetis:x64-linux=fail parmetis:x64-osx=fail @@ -1414,7 +1369,6 @@ pixel:x64-uwp=fail pixel:x64-windows=fail pixel:x64-windows-static=fail pixel:x86-windows=fail -pixel:x64-linux=ignore platform-folders:arm-uwp=fail platform-folders:x64-uwp=fail plib:arm-uwp=fail @@ -1434,7 +1388,6 @@ pmdk:x64-windows-static=fail pmdk:x86-windows=fail pngwriter:arm-uwp=fail pngwriter:x64-uwp=fail -pngwriter:x64-linux=ignore polyhook2:arm64-windows=fail polyhook2:arm-uwp=fail polyhook2:x64-linux=fail @@ -1452,15 +1405,11 @@ portmidi:arm-uwp=fail portmidi:x64-linux=fail portmidi:x64-osx=fail portmidi:x64-uwp=fail -ppconsul:x64-linux=ignore pqp:arm-uwp=fail pqp:x64-uwp=fail proj4:arm64-windows=fail proj4:arm-uwp=fail proj4:x64-uwp=fail -protobuf:x64-uwp=ignore -protobuf:arm64-windows=ignore -protobuf:arm-uwp=ignore protobuf-c:x86-windows=fail protobuf-c:x64-windows=fail protobuf-c:x64-windows-static=fail @@ -1488,9 +1437,8 @@ python3:x64-uwp=fail qca:x64-linux=fail qca:x64-osx=fail qca:x64-windows-static=fail -qhull:arm-uwp=ignore -qhull:x64-windows-static=ignore -qhull:x64-uwp=ignore +qhull:x64-uwp=fail +qhull:arm-uwp=fail qpid-proton:arm-uwp=fail qpid-proton:x64-uwp=fail qpid-proton:x64-windows-static=fail @@ -1525,13 +1473,13 @@ qt5-x11extras:x64-windows-static=fail # Broken by VS2019 16.6 and throws a ton of dialogs attempting to build # fixed by https://github.com/microsoft/vcpkg/pull/11596 qt5-translations:x64-windows-static=skip -quickfast:x64-linux=ignore -quickfix:x64-linux=ignore -quickfix:x64-windows=ignore -quickfix:x64-windows-static=ignore -quickfix:x86-windows=ignore -quickfix:x64-uwp=fail quickfix:arm-uwp=fail +quickfix:arm64-windows=fail +quickfix:x64-linux=fail +quickfix:x64-uwp=fail +quickfix:x64-windows-static=fail +quickfix:x64-windows=fail +quickfix:x86-windows=fail quill:arm64-windows=fail quill:arm-uwp=fail quill:x64-uwp=fail @@ -1543,9 +1491,8 @@ quirc:x64-uwp = skip quirc:x64-windows = skip quirc:x64-windows-static = skip quirc:x86-windows = skip -qwt:x64-osx=ignore +qwt:x64-osx=fail rabit:x64-osx=fail -rabit:x64-linux=ignore ragel:arm-uwp=fail ragel:x64-uwp=fail range-v3-vs2015:arm64-windows = skip @@ -1593,13 +1540,9 @@ rhash:arm-uwp=fail rhash:x64-uwp=fail rocksdb:arm-uwp=fail rocksdb:x64-uwp=fail -rocksdb:x64-linux=ignore rpclib:arm64-windows=fail rpclib:arm-uwp=fail rpclib:x64-uwp=fail -rpclib:x64-windows=ignore -rpclib:x86-windows=ignore -rpclib:x64-windows-static=ignore rtlsdr:x64-uwp=fail rtlsdr:arm64-windows=fail rtlsdr:arm-uwp=fail @@ -1636,7 +1579,6 @@ scylla-wrapper:x64-windows-static=fail sdformat6:arm64-windows=fail sdformat6:arm-uwp=fail sdformat6:x64-uwp=fail -sdformat6:x64-linux=ignore sdformat9:x64-linux=fail sdformat9:arm-uwp=fail sdformat9:x64-uwp=fail @@ -1654,7 +1596,6 @@ seal:arm-uwp=fail seal:x64-uwp=fail secp256k1:x64-linux=fail secp256k1:x64-osx=fail -selene:x64-linux=ignore sentencepiece:arm64-windows=fail sentencepiece:arm-uwp=fail sentencepiece:x64-uwp=fail @@ -1663,7 +1604,6 @@ sentencepiece:x86-windows=fail septag-sx:arm64-windows=fail septag-sx:arm-uwp=fail septag-sx:x64-uwp=fail -sfgui:x64-linux=ignore sfml:arm64-windows=fail shapelib:arm-uwp=fail shapelib:x64-uwp=fail @@ -1708,13 +1648,11 @@ soqt:arm64-windows=fail soqt:arm-uwp=fail soqt:x64-uwp=fail soundtouch:arm-uwp=fail -soundtouch:x64-linux=ignore soundtouch:x64-uwp=fail soundtouch:x64-windows-static=fail spaceland:arm64-windows=fail spaceland:arm-uwp=fail spaceland:x64-uwp=fail -spaceland:x64-linux=ignore spdk:x64-linux=fail spdk-dpdk:arm64-windows=fail spdk-dpdk:arm-uwp=fail @@ -1774,15 +1712,14 @@ superlu:x64-windows=skip systemc:arm64-windows=fail systemc:arm-uwp=fail systemc:x64-uwp=fail -taglib:x64-linux=ignore tbb:arm64-windows=fail tbb:arm-uwp=fail tbb:x64-uwp=fail -tcl:arm-uwp=ignore -tcl:arm64-windows=ignore -tcl:x64-uwp=ignore -tcl:x64-linux=ignore -tcl:x64-osx=ignore +tcl:arm-uwp=fail +tcl:arm64-windows=fail +tcl:x64-uwp=fail +tcl:x64-linux=fail +tcl:x64-osx=fail teemo:x64-uwp=fail teemo:arm-uwp=fail teemo:arm64-windows=fail @@ -1795,9 +1732,9 @@ tensorflow-cc:x64-osx=skip tensorflow-cc:x64-windows=fail tensorflow-cc:x64-windows-static=fail tensorflow-cc:x86-windows=fail -tesseract:x64-windows=ignore -tesseract:x64-windows-static=ignore -tesseract:x86-windows=ignore +tesseract:x64-windows=fail +tesseract:x64-windows-static=fail +tesseract:x86-windows=fail tesseract:arm64-windows=fail tfhe:x86-windows=fail tfhe:x64-windows=fail @@ -1821,7 +1758,6 @@ tinyexif:arm-uwp=fail tinyexif:x64-uwp=fail tinyfiledialogs:arm-uwp=fail tinyfiledialogs:x64-uwp=fail -tinynpy:x64-linux=ignore tiny-process-library:arm-uwp=fail tiny-process-library:x64-uwp=fail tinyutf8:arm64-windows=fail @@ -1909,15 +1845,13 @@ vxl:x64-windows = skip vxl:x64-windows-static = skip vxl:x86-windows = skip wampcc:arm64-windows=fail -wampcc:x64-linux=ignore -wangle:x64-linux=ignore wavpack:arm64-windows=fail wavpack:x64-linux=fail wavpack:x64-osx=fail -wepoll:arm-uwp=ignore -wepoll:x64-uwp=ignore -wepoll:x64-linux=ignore -wepoll:x64-osx=ignore +wepoll:arm-uwp=fail +wepoll:x64-uwp=fail +wepoll:x64-linux=fail +wepoll:x64-osx=fail wildmidi:x64-osx=fail wincrypt:x64-linux=fail wincrypt:x64-osx=fail @@ -1946,11 +1880,11 @@ wxchartdir:x64-osx=fail wxwidgets:x64-linux=fail x264:arm64-windows=fail x264:arm-uwp=fail -x264:x64-uwp=ignore +x264:x64-uwp=fail x264:x64-osx=fail -x264:x86-windows=ignore -x264:x64-windows=ignore -x264:x64-windows-static=ignore +x264:x86-windows=fail +x264:x64-windows=fail +x264:x64-windows-static=fail x265:arm64-windows=fail x265:arm-uwp=fail x265:x64-uwp=fail @@ -1961,7 +1895,6 @@ xbyak:arm-uwp=fail xbyak:x64-uwp=fail xerces-c:arm-uwp=fail xerces-c:x64-uwp=fail -xeus:x64-linux=ignore xmlsec:arm-uwp=fail xmlsec:x64-uwp=fail # The xmsh upstream repository is gone, if we find no replacement before @@ -1974,7 +1907,6 @@ xmsh:x64-uwp=skip xmsh:x64-windows-static=skip xmsh:x64-windows=skip xmsh:x86-windows=skip -xtensor-io:x64-uwp=ignore x-plane:arm64-windows=fail x-plane:arm-uwp=fail x-plane:x64-linux=fail |
