mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-28 11:21:12 +08:00
229f537c94
* Add meson from https://github.com/microsoft/vcpkg/pull/12860/ * Add autoconf-archive from https://github.com/microsoft/vcpkg/pull/13081/ * Add kf5windowsystem libs from https://github.com/microsoft/vcpkg/pull/13467/ * Open the FTP and SFTP ports from https://github.com/microsoft/vcpkg/pull/14412/ * Add libxcb-util0-dev from https://github.com/microsoft/vcpkg/pull/14678/ * Add libasound2-dev from https://github.com/microsoft/vcpkg/pull/14774 * Remove no longer necessary apt-mark calls. * Update nasm on Linux. * Fix longstanding bug where Storage was publicly accessible and change to generate SAS token rather than File Share * Delete no longer necessary azure storage firewall rules. * Install the newer Windows SDK with the VS installer instead of manually. * Install the VS2015 and VS2017 compilers. * Update Powershell-Core to 7.1.0. * Update source of WDK. * Update pools. * [opentracing] Repair arm64-windows failures caused by mojibake in `expected.hpp` and errors in opentracing-cpp's lint for arm64 where it thinks exceptions are disabled when they are enabled. Fixes: C:\Dev\vcpkg\buildtrees\opentracing\src\b67575dab0-0250653c81.clean\3rd_party\include\opentracing/expected/expected.hpp(1): warning C4828: The file contains a character starting at offset 0x4a77 that is illegal in the current source character set (codepage 65001). Fixes: D:\buildtrees\opentracing\src\b67575dab0-0250653c81.clean\include\opentracing/tracer.h:223:5: error: cannot use 'try' with exceptions disabled [clang-diagnostic-error] try { ^ * [mmloader] Patch out overrides of CMAKE_C_FLAGS and CMAKE_CXX_FLAGS that inserted /WX. Note that this port sets /GS-, possibly because it may be for authoring shellcode. * Bump storage API version to 2020-04-08.
151 lines
5.3 KiB
PowerShell
Executable File
151 lines
5.3 KiB
PowerShell
Executable File
# Copyright (c) Microsoft Corporation.
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
<#
|
|
.SYNOPSIS
|
|
Runs the 'Test Modified Ports' part of the vcpkg CI system for all platforms.
|
|
|
|
.PARAMETER Triplet
|
|
The triplet to test.
|
|
|
|
.PARAMETER WorkingRoot
|
|
The location used as scratch space for 'installed', 'packages', and 'buildtrees' vcpkg directories.
|
|
|
|
.PARAMETER ArtifactStagingDirectory
|
|
The Azure Pipelines artifacts directory. If not supplied, defaults to the current directory.
|
|
|
|
.PARAMETER ArchivesRoot
|
|
Equivalent to '-BinarySourceStub "files,$ArchivesRoot"'
|
|
|
|
.PARAMETER UseEnvironmentSasToken
|
|
Equivalent to '-BinarySourceStub "x-azblob,https://$($env:PROVISIONED_AZURE_STORAGE_NAME).blob.core.windows.net/archives,$($env:PROVISIONED_AZURE_STORAGE_SAS_TOKEN)"'
|
|
|
|
.PARAMETER BinarySourceStub
|
|
The type and parameters of the binary source. Shared across runs of this script. If
|
|
this parameter is not set, binary caching will not be used. Example: "files,W:\"
|
|
|
|
.PARAMETER BuildReason
|
|
The reason Azure Pipelines is running this script (controls in which mode Binary Caching is used).
|
|
If BinarySourceStub is not set, this parameter has no effect. If BinarySourceStub is set and this is
|
|
not, binary caching will default to read-write mode.
|
|
#>
|
|
|
|
[CmdletBinding(DefaultParameterSetName="ArchivesRoot")]
|
|
Param(
|
|
[Parameter(Mandatory = $true)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[string]$Triplet,
|
|
[Parameter(Mandatory = $true)]
|
|
[ValidateNotNullOrEmpty()]
|
|
$WorkingRoot,
|
|
[ValidateNotNullOrEmpty()]
|
|
$ArtifactStagingDirectory = '.',
|
|
[Parameter(ParameterSetName='ArchivesRoot')]
|
|
$ArchivesRoot = $null,
|
|
[switch]
|
|
$UseEnvironmentSasToken = $false,
|
|
[Parameter(ParameterSetName='BinarySourceStub')]
|
|
$BinarySourceStub = $null,
|
|
$BuildReason = $null
|
|
)
|
|
|
|
if (-Not (Test-Path "triplets/$Triplet.cmake")) {
|
|
Write-Error "Incorrect triplet '$Triplet', please supply a valid triplet."
|
|
throw
|
|
}
|
|
|
|
$usingBinaryCaching = $true
|
|
if ([string]::IsNullOrWhiteSpace($BinarySourceStub)) {
|
|
if ([string]::IsNullOrWhiteSpace($ArchivesRoot)) {
|
|
if ($UseEnvironmentSasToken) {
|
|
$BinarySourceStub = "x-azblob,https://$($env:PROVISIONED_AZURE_STORAGE_NAME).blob.core.windows.net/archives,$($env:PROVISIONED_AZURE_STORAGE_SAS_TOKEN)"
|
|
} else {
|
|
$usingBinaryCaching = $false
|
|
}
|
|
} else {
|
|
if ($UseEnvironmentSasToken) {
|
|
Write-Error "Only one binary caching setting may be used."
|
|
throw
|
|
} else {
|
|
$BinarySourceStub = "files,$ArchivesRoot"
|
|
}
|
|
}
|
|
} elseif ((-Not [string]::IsNullOrWhiteSpace($ArchivesRoot)) -Or $UseEnvironmentSasToken) {
|
|
Write-Error "Only one binary caching setting may be used."
|
|
throw
|
|
}
|
|
|
|
$env:VCPKG_DOWNLOADS = Join-Path $WorkingRoot 'downloads'
|
|
$buildtreesRoot = Join-Path $WorkingRoot 'buildtrees'
|
|
$installRoot = Join-Path $WorkingRoot 'installed'
|
|
$packagesRoot = Join-Path $WorkingRoot 'packages'
|
|
|
|
$commonArgs = @()
|
|
if ($usingBinaryCaching) {
|
|
$commonArgs += @('--binarycaching')
|
|
} else {
|
|
$commonArgs += @('--no-binarycaching')
|
|
}
|
|
|
|
$commonArgs += @(
|
|
"--x-buildtrees-root=$buildtreesRoot",
|
|
"--x-install-root=$installRoot",
|
|
"--x-packages-root=$packagesRoot",
|
|
"--overlay-ports=scripts/test_ports"
|
|
)
|
|
|
|
$skipFailures = $false
|
|
if ($usingBinaryCaching) {
|
|
$binaryCachingMode = 'readwrite'
|
|
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, skipping failures.'
|
|
$skipFailures = $true
|
|
}
|
|
else {
|
|
Write-Host "Build reason was $BuildReason, using binary caching in write only mode."
|
|
$binaryCachingMode = 'write'
|
|
}
|
|
|
|
$commonArgs += @("--binarysource=clear;$BinarySourceStub,$binaryCachingMode")
|
|
}
|
|
|
|
if ($Triplet -eq 'x64-linux') {
|
|
$env:HOME = '/home/agent'
|
|
$executableExtension = [string]::Empty
|
|
}
|
|
elseif ($Triplet -eq 'x64-osx') {
|
|
$executableExtension = [string]::Empty
|
|
}
|
|
else {
|
|
$executableExtension = '.exe'
|
|
}
|
|
|
|
$xmlResults = Join-Path $ArtifactStagingDirectory 'xml-results'
|
|
mkdir $xmlResults
|
|
$xmlFile = Join-Path $xmlResults "$Triplet.xml"
|
|
|
|
$failureLogs = Join-Path $ArtifactStagingDirectory 'failure-logs'
|
|
|
|
& "./vcpkg$executableExtension" x-ci-clean @commonArgs
|
|
$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:
|
|
if ($Triplet -in @('x64-uwp', 'arm64-windows', 'arm-uwp')) {
|
|
.\vcpkg.exe install protobuf:x86-windows boost-build:x86-windows sqlite3:x86-windows yasm-tool:x86-windows ampl-mp:x86-windows @commonArgs
|
|
} elseif ($Triplet -in @('x64-windows', 'x64-windows-static')) {
|
|
.\vcpkg.exe install yasm-tool:x86-windows @commonArgs
|
|
}
|
|
|
|
& "./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
|