Skip to content

Commit

Permalink
Add "cascades" enforcement (#20140)
Browse files Browse the repository at this point in the history
* Add "cascades" enforcement as requested by microsoft/vcpkg#20074 (comment)

* Add counts.

* Fix arm-uwp count.

* Update counts.

* Update counts
  • Loading branch information
BillyONeal authored and mheyman committed Jan 8, 2022
1 parent ded26dc commit ee7998a
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 6 deletions.
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/linux/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/osx/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
49 changes: 46 additions & 3 deletions scripts/azure-pipelines/test-modified-ports.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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")]
Expand All @@ -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"))) {
Expand Down Expand Up @@ -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 `
Expand Down
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/windows/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down

0 comments on commit ee7998a

Please sign in to comment.