aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorBilly O'Neal <bion@microsoft.com>2021-09-14 17:46:38 -0700
committerGitHub <noreply@github.com>2021-09-14 17:46:38 -0700
commit5395ad9a4f29e5edef20cf20690089e9717f35f6 (patch)
tree966602db0403200f09a31eaf8c969afd033a1e3f /scripts
parent0209a276fb956d095ac28ec1407956d5710e95ba (diff)
downloadvcpkg-5395ad9a4f29e5edef20cf20690089e9717f35f6.tar.gz
vcpkg-5395ad9a4f29e5edef20cf20690089e9717f35f6.zip
Add "cascades" enforcement (#20140)
* Add "cascades" enforcement as requested by https://github.com/microsoft/vcpkg/pull/20074#issuecomment-916565430 * Add counts. * Fix arm-uwp count. * Update counts. * Update counts
Diffstat (limited to 'scripts')
-rw-r--r--scripts/azure-pipelines/linux/azure-pipelines.yml2
-rw-r--r--scripts/azure-pipelines/osx/azure-pipelines.yml2
-rwxr-xr-xscripts/azure-pipelines/test-modified-ports.ps149
-rw-r--r--scripts/azure-pipelines/windows/azure-pipelines.yml2
4 files changed, 49 insertions, 6 deletions
diff --git a/scripts/azure-pipelines/linux/azure-pipelines.yml b/scripts/azure-pipelines/linux/azure-pipelines.yml
index f68f971e5..530dba677 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 154247da4..dc0ae7c46 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 b7d5036b5..b1b7e14da 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,59 @@ $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 = 28
+ } elseif ($Triplet -eq 'x64-windows') {
+ $cascades = 21
+ } elseif ($Triplet -eq 'x64-windows-static') {
+ $cascades = 59
+ } elseif ($Triplet -eq 'x64-windows-static-md') {
+ $cascades = 53
+ } elseif ($Triplet -eq 'x64-uwp') {
+ $cascades = 345
+ } elseif ($Triplet -eq 'arm64-windows') {
+ $cascades = 228
+ } elseif ($Triplet -eq 'arm-uwp') {
+ $cascades = 345
+ } elseif ($Triplet -eq 'x64-osx') {
+ $cascades = 61
+ } elseif ($Triplet -eq 'x64-linux') {
+ $cascades = 31
+ } 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 b88a5f120..2a1402297 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'