From a1ede17895df77d12cb714b264bb220f3115f4df Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Mon, 13 Sep 2021 15:10:11 -0700 Subject: [PATCH 1/5] Add "cascades" enforcement as requested by https://github.com/microsoft/vcpkg/pull/20074#issuecomment-916565430 --- .../azure-pipelines/linux/azure-pipelines.yml | 2 +- .../azure-pipelines/osx/azure-pipelines.yml | 2 +- .../azure-pipelines/test-modified-ports.ps1 | 51 +++++++++++++++++-- .../windows/azure-pipelines.yml | 2 +- 4 files changed, 51 insertions(+), 6 deletions(-) diff --git a/scripts/azure-pipelines/linux/azure-pipelines.yml b/scripts/azure-pipelines/linux/azure-pipelines.yml index f68f971e5a3219..530dba67726c56 100644 --- a/scripts/azure-pipelines/linux/azure-pipelines.yml +++ b/scripts/azure-pipelines/linux/azure-pipelines.yml @@ -45,7 +45,7 @@ jobs: inputs: failOnStderr: true filePath: 'scripts/azure-pipelines/test-modified-ports.ps1' - arguments: '-Triplet x64-linux -BuildReason $(Build.Reason) -BinarySourceStub "$(X_VCPKG_BINARY_SOURCE_STUB)" -WorkingRoot ${{ variables.WORKING_ROOT }} -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory)' + arguments: '-Triplet x64-linux -BuildReason $(Build.Reason) -BinarySourceStub "$(X_VCPKG_BINARY_SOURCE_STUB)" -WorkingRoot ${{ variables.WORKING_ROOT }} -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory) -EnforceCascades' pwsh: true - bash: | df -h diff --git a/scripts/azure-pipelines/osx/azure-pipelines.yml b/scripts/azure-pipelines/osx/azure-pipelines.yml index 154247da47481b..dc0ae7c46648fc 100644 --- a/scripts/azure-pipelines/osx/azure-pipelines.yml +++ b/scripts/azure-pipelines/osx/azure-pipelines.yml @@ -39,7 +39,7 @@ jobs: inputs: failOnStderr: true filePath: 'scripts/azure-pipelines/test-modified-ports.ps1' - arguments: '-Triplet x64-osx -BuildReason $(Build.Reason) -BinarySourceStub "$(BINARY_SOURCE_STUB)" -WorkingRoot ${{ variables.WORKING_ROOT }} -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory)' + arguments: '-Triplet x64-osx -BuildReason $(Build.Reason) -BinarySourceStub "$(BINARY_SOURCE_STUB)" -WorkingRoot ${{ variables.WORKING_ROOT }} -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory) -EnforceCascades' pwsh: true - bash: | df -h diff --git a/scripts/azure-pipelines/test-modified-ports.ps1 b/scripts/azure-pipelines/test-modified-ports.ps1 index b7d5036b518d65..edaf492dbb5486 100755 --- a/scripts/azure-pipelines/test-modified-ports.ps1 +++ b/scripts/azure-pipelines/test-modified-ports.ps1 @@ -30,6 +30,9 @@ not, binary caching will default to read-write mode. .PARAMETER PassingIsPassing Indicates that 'Passing, remove from fail list' results should not be emitted as failures. (For example, this is used when using vcpkg to test a prerelease MSVC++ compiler) + +.PARAMETER EnforceCascades +Enforces that the cascade count from ci.baseline.txt and "supports" is consistent with last known values. #> [CmdletBinding(DefaultParameterSetName="ArchivesRoot")] @@ -48,7 +51,9 @@ Param( $BinarySourceStub = $null, $BuildReason = $null, [switch] - $PassingIsPassing = $false + $PassingIsPassing = $false, + [switch] + $EnforceCascades = $false ) if (-Not ((Test-Path "triplets/$Triplet.cmake") -or (Test-Path "triplets/community/$Triplet.cmake"))) { @@ -116,21 +121,61 @@ $xmlFile = Join-Path $xmlResults "$Triplet.xml" $failureLogs = Join-Path $ArtifactStagingDirectory 'failure-logs' & "./vcpkg$executableExtension" x-ci-clean @commonArgs +if ($LASTEXITCODE -ne 0) +{ + throw "vcpkg clean failed" +} + $skipList = . "$PSScriptRoot/generate-skip-list.ps1" ` -Triplet $Triplet ` -BaselineFile "$PSScriptRoot/../ci.baseline.txt" ` -SkipFailures:$skipFailures +$ciArgs = $commonArgs +if ($EnforceCascades) { + if ($Triplet -eq 'x86-windows') { + $cascades = 0 + } elseif ($Triplet -eq 'x64-windows') { + $cascades = 0 + } elseif ($Triplet -eq 'x64-windows-static') { + $cascades = 0 + } elseif ($Triplet -eq 'x64-windows-static-md') { + $cascades = 0 + } elseif ($Triplet -eq 'x64-uwp') { + $cascades = 0 + } elseif ($Triplet -eq 'arm64-uwp') { + $cascades = 0 + } elseif ($Triplet -eq 'arm64-windows') { + $cascades = 0 + } elseif ($Triplet -eq 'arm-uwp') { + $cascades = 0 + } elseif ($Triplet -eq 'x64-osx') { + $cascades = 0 + } elseif ($Triplet -eq 'x64-linux') { + $cascades = 0 + } else { + throw "Unknown triplet ($Triplet); could not determine expected cascade count. Update test-modified-ports.ps1." + } + + $ciArgs += @("--x-skipped-cascade-count=$cascades") +} + if ($Triplet -in @('x64-windows', 'x64-osx', 'x64-linux')) { # WORKAROUND: These triplets are native-targetting which triggers an issue in how vcpkg handles the skip list. # The workaround is to pass the skip list as host-excludes as well. - & "./vcpkg$executableExtension" ci $Triplet --x-xunit=$xmlFile --exclude=$skipList --host-exclude=$skipList --failure-logs=$failureLogs @commonArgs + & "./vcpkg$executableExtension" ci $Triplet --x-xunit=$xmlFile --exclude=$skipList --host-exclude=$skipList --failure-logs=$failureLogs @ciArgs } else { - & "./vcpkg$executableExtension" ci $Triplet --x-xunit=$xmlFile --exclude=$skipList --failure-logs=$failureLogs @commonArgs + & "./vcpkg$executableExtension" ci $Triplet --x-xunit=$xmlFile --exclude=$skipList --failure-logs=$failureLogs @ciArgs +} + +if ($LASTEXITCODE -ne 0) +{ + throw "vcpkg ci failed" } + & "$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 b88a5f12036372..2a1402297c6d72 100644 --- a/scripts/azure-pipelines/windows/azure-pipelines.yml +++ b/scripts/azure-pipelines/windows/azure-pipelines.yml @@ -39,7 +39,7 @@ jobs: inputs: failOnStderr: true filePath: 'scripts/azure-pipelines/test-modified-ports.ps1' - arguments: '-Triplet ${{ parameters.triplet }} -BuildReason $(Build.Reason) -BinarySourceStub "$(X_VCPKG_BINARY_SOURCE_STUB)" -WorkingRoot ${{ variables.WORKING_ROOT }} -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory)' + arguments: '-Triplet ${{ parameters.triplet }} -BuildReason $(Build.Reason) -BinarySourceStub "$(X_VCPKG_BINARY_SOURCE_STUB)" -WorkingRoot ${{ variables.WORKING_ROOT }} -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory) -EnforceCascades' pwsh: true - task: PowerShell@2 displayName: 'Validate version files' From 8bd3efba61793f4128bf5fa4744d51d7a7655a1b Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Mon, 13 Sep 2021 16:47:04 -0700 Subject: [PATCH 2/5] Add counts. --- .../azure-pipelines/test-modified-ports.ps1 | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/scripts/azure-pipelines/test-modified-ports.ps1 b/scripts/azure-pipelines/test-modified-ports.ps1 index edaf492dbb5486..3253f2f2d9cb3a 100755 --- a/scripts/azure-pipelines/test-modified-ports.ps1 +++ b/scripts/azure-pipelines/test-modified-ports.ps1 @@ -134,25 +134,23 @@ $skipList = . "$PSScriptRoot/generate-skip-list.ps1" ` $ciArgs = $commonArgs if ($EnforceCascades) { if ($Triplet -eq 'x86-windows') { - $cascades = 0 + $cascades = 28 } elseif ($Triplet -eq 'x64-windows') { - $cascades = 0 + $cascades = 21 } elseif ($Triplet -eq 'x64-windows-static') { - $cascades = 0 + $cascades = 59 } elseif ($Triplet -eq 'x64-windows-static-md') { - $cascades = 0 + $cascades = 53 } elseif ($Triplet -eq 'x64-uwp') { - $cascades = 0 - } elseif ($Triplet -eq 'arm64-uwp') { - $cascades = 0 + $cascades = 341 } elseif ($Triplet -eq 'arm64-windows') { - $cascades = 0 + $cascades = 229 } elseif ($Triplet -eq 'arm-uwp') { - $cascades = 0 + $cascades = 229 } elseif ($Triplet -eq 'x64-osx') { - $cascades = 0 + $cascades = 61 } elseif ($Triplet -eq 'x64-linux') { - $cascades = 0 + $cascades = 31 } else { throw "Unknown triplet ($Triplet); could not determine expected cascade count. Update test-modified-ports.ps1." } From ebf8528192a18efa41c656c634ef3a88f460bab7 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Mon, 13 Sep 2021 17:56:47 -0700 Subject: [PATCH 3/5] Fix arm-uwp count. --- scripts/azure-pipelines/test-modified-ports.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/azure-pipelines/test-modified-ports.ps1 b/scripts/azure-pipelines/test-modified-ports.ps1 index 3253f2f2d9cb3a..cdf6a4cb14d310 100755 --- a/scripts/azure-pipelines/test-modified-ports.ps1 +++ b/scripts/azure-pipelines/test-modified-ports.ps1 @@ -146,7 +146,7 @@ if ($EnforceCascades) { } elseif ($Triplet -eq 'arm64-windows') { $cascades = 229 } elseif ($Triplet -eq 'arm-uwp') { - $cascades = 229 + $cascades = 341 } elseif ($Triplet -eq 'x64-osx') { $cascades = 61 } elseif ($Triplet -eq 'x64-linux') { From e00316896d41c79d78c966adab60009faa18469c Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Tue, 14 Sep 2021 14:12:57 -0700 Subject: [PATCH 4/5] Update counts. --- scripts/azure-pipelines/test-modified-ports.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/azure-pipelines/test-modified-ports.ps1 b/scripts/azure-pipelines/test-modified-ports.ps1 index cdf6a4cb14d310..356d715fd60fe4 100755 --- a/scripts/azure-pipelines/test-modified-ports.ps1 +++ b/scripts/azure-pipelines/test-modified-ports.ps1 @@ -142,11 +142,11 @@ if ($EnforceCascades) { } elseif ($Triplet -eq 'x64-windows-static-md') { $cascades = 53 } elseif ($Triplet -eq 'x64-uwp') { - $cascades = 341 + $cascades = 344 } elseif ($Triplet -eq 'arm64-windows') { - $cascades = 229 + $cascades = 232 } elseif ($Triplet -eq 'arm-uwp') { - $cascades = 341 + $cascades = 344 } elseif ($Triplet -eq 'x64-osx') { $cascades = 61 } elseif ($Triplet -eq 'x64-linux') { From dcba23d7c5913672eb447389510a36bce47618b7 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Tue, 14 Sep 2021 17:42:58 -0700 Subject: [PATCH 5/5] Update counts --- scripts/azure-pipelines/test-modified-ports.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/azure-pipelines/test-modified-ports.ps1 b/scripts/azure-pipelines/test-modified-ports.ps1 index 356d715fd60fe4..b1b7e14da68e45 100755 --- a/scripts/azure-pipelines/test-modified-ports.ps1 +++ b/scripts/azure-pipelines/test-modified-ports.ps1 @@ -142,11 +142,11 @@ if ($EnforceCascades) { } elseif ($Triplet -eq 'x64-windows-static-md') { $cascades = 53 } elseif ($Triplet -eq 'x64-uwp') { - $cascades = 344 + $cascades = 345 } elseif ($Triplet -eq 'arm64-windows') { - $cascades = 232 + $cascades = 228 } elseif ($Triplet -eq 'arm-uwp') { - $cascades = 344 + $cascades = 345 } elseif ($Triplet -eq 'x64-osx') { $cascades = 61 } elseif ($Triplet -eq 'x64-linux') {