aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/scripts/azure-pipelines/windows-unstable
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/scripts/azure-pipelines/windows-unstable')
-rw-r--r--vcpkg/scripts/azure-pipelines/windows-unstable/README.md4
-rw-r--r--vcpkg/scripts/azure-pipelines/windows-unstable/azure-pipelines.yml81
-rw-r--r--vcpkg/scripts/azure-pipelines/windows-unstable/rearrange-msvc-drop-layout.ps175
3 files changed, 160 insertions, 0 deletions
diff --git a/vcpkg/scripts/azure-pipelines/windows-unstable/README.md b/vcpkg/scripts/azure-pipelines/windows-unstable/README.md
new file mode 100644
index 0000000..5dc58f5
--- /dev/null
+++ b/vcpkg/scripts/azure-pipelines/windows-unstable/README.md
@@ -0,0 +1,4 @@
+The "unstable" build is used internally by Microsoft to test prerelease versions
+of our C++ compiler; not seeing results from these build definitions in the
+GitHub portal is normal as these builds depend on acquisition of private
+compiler bits that aren't yet shipping.
diff --git a/vcpkg/scripts/azure-pipelines/windows-unstable/azure-pipelines.yml b/vcpkg/scripts/azure-pipelines/windows-unstable/azure-pipelines.yml
new file mode 100644
index 0000000..21a9d92
--- /dev/null
+++ b/vcpkg/scripts/azure-pipelines/windows-unstable/azure-pipelines.yml
@@ -0,0 +1,81 @@
+# Copyright (c) Microsoft Corporation.
+# SPDX-License-Identifier: MIT
+#
+
+jobs:
+- job: x64_windows
+ pool:
+ name: vcpkg-testing-msvc
+ demands: ImageVersionOverride -equals 2025.10.17
+ timeoutInMinutes: 2880 # 2 days
+ variables:
+ - name: WORKING_ROOT
+ value: D:\
+ - name: VCPKG_DOWNLOADS
+ value: D:\downloads
+ - name: Codeql.Enabled
+ value: false
+ steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: 'Download DropBuildNumber if not specified'
+ inputs:
+ buildType: specific
+ project: '0bdbc590-a062-4c3f-b0f6-9383f67865ee'
+ pipeline: 16549
+ buildVersionToDownload: latestFromBranch
+ branchName: 'refs/heads/$(MSVCBranchName)'
+ artifactName: BuildNumber
+ downloadPath: 'D:\msvc-drops'
+ condition: eq(variables['DropBuildNumber'], '')
+ - task: PowerShell@2
+ displayName: 'Set DropBuildNumber if not specified'
+ inputs:
+ targetType: inline
+ script: |
+ $DropBuildNumber = Get-Content -Path D:\msvc-drops\BuildNumber\Build.BuildNumber.txt
+ Write-Host "##vso[task.setvariable variable=DropBuildNumber]$DropBuildNumber"
+ Write-Host "Build Number set to: $DropBuildNumber"
+ pwsh: true
+ condition: eq(variables['DropBuildNumber'], '')
+ - task: ms-vscs-artifact.build-tasks.artifactDropDownloadTask-1.artifactDropDownloadTask@0
+ displayName: 'Download msvc x86 ret'
+ inputs:
+ dropServiceURI: 'https://devdiv.artifacts.visualstudio.com/DefaultCollection'
+ buildNumber: 'msvc/builds/$(DropBuildNumber)/x86ret'
+ destinationPath: 'D:\msvc-drops\$(DropBuildNumber)\binaries.x86ret'
+ - task: ms-vscs-artifact.build-tasks.artifactDropDownloadTask-1.artifactDropDownloadTask@0
+ displayName: 'Download msvc amd64 ret'
+ inputs:
+ dropServiceURI: 'https://devdiv.artifacts.visualstudio.com/DefaultCollection'
+ buildNumber: 'msvc/builds/$(DropBuildNumber)/amd64ret'
+ destinationPath: 'D:\msvc-drops\$(DropBuildNumber)\binaries.amd64ret'
+ - task: PowerShell@2
+ displayName: 'Rearrange MSVC Drop Layout'
+ inputs:
+ targetType: filePath
+ filePath: 'scripts/azure-pipelines/windows-unstable/rearrange-msvc-drop-layout.ps1'
+ arguments: '-DropRoot "D:\msvc-drops\$(DropBuildNumber)" -BuildType ret'
+ pwsh: true
+ - script: .\bootstrap-vcpkg.bat
+ displayName: 'Bootstrap vcpkg'
+ - task: AzureCLI@2
+ displayName: '*** Test Modified Ports'
+ inputs:
+ azureSubscription: 'vcpkg-pr-fleet-wus'
+ scriptType: 'pscore'
+ failOnStandardError: true
+ scriptLocation: 'inlineScript'
+ inlineScript: |
+ $current = Get-Date -AsUtc
+ $endDate = $current.AddDays(2)
+ $end = Get-Date -Date $endDate -UFormat '+%Y-%m-%dT%H:%MZ'
+ $assetSas = az storage container generate-sas --name cache --account-name vcpkgassetcachewus --as-user --auth-mode login --https-only --permissions r --expiry $end -o tsv | Out-String
+ $assetSas = $assetSas.Trim()
+ $env:X_VCPKG_ASSET_SOURCES = "x-azurl,https://vcpkgassetcachewus.blob.core.windows.net/cache,$assetSas,read"
+ & scripts/azure-pipelines/test-modified-ports.ps1 -Triplet x64-windows -BuildReason $(Build.Reason) -WorkingRoot $env:WORKING_ROOT -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory) -AllowUnexpectedPassing
+ - task: PublishPipelineArtifact@1
+ displayName: "Publish Artifact: failure logs for x64-windows"
+ inputs:
+ targetPath: '$(Build.ArtifactStagingDirectory)\failure-logs'
+ artifact: "failure logs for x64-windows"
+ condition: ne(variables['FAILURE_LOGS_EMPTY'], 'True')
diff --git a/vcpkg/scripts/azure-pipelines/windows-unstable/rearrange-msvc-drop-layout.ps1 b/vcpkg/scripts/azure-pipelines/windows-unstable/rearrange-msvc-drop-layout.ps1
new file mode 100644
index 0000000..5369253
--- /dev/null
+++ b/vcpkg/scripts/azure-pipelines/windows-unstable/rearrange-msvc-drop-layout.ps1
@@ -0,0 +1,75 @@
+# Copyright (c) Microsoft Corporation.
+# SPDX-License-Identifier: MIT
+#
+<#
+.SYNOPSIS
+Moves files from an MSVC compiler drop to the locations where they are installed in a Visual Studio installation.
+
+.PARAMETER DropRoot
+The location where the MSVC compiler drop has been downloaded.
+
+.PARAMETER BuildType
+The MSVC drop build type set with /p:_BuildType when MSVC was built. Defaults to 'ret'.
+
+#>
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory = $true)][string]$DropRoot,
+ [Parameter(Mandatory = $false)][ValidateSet('ret', 'chk')][string]$BuildType = 'ret'
+)
+
+Set-StrictMode -Version Latest
+
+$MSVCRoot = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC"
+
+$ErrorActionPreference = "Stop"
+
+$tempRoot = "$DropRoot\readytodeploy"
+
+New-Item -ItemType Directory -Path $tempRoot | Out-Null
+
+Write-Host "Rearranging x86$BuildType"
+New-Item -ItemType Directory -Path "$tempRoot\bin\HostX86" | Out-Null
+Move-Item "$DropRoot\binaries.x86$BuildType\bin\i386" "$tempRoot\bin\HostX86\x86"
+Move-Item "$DropRoot\binaries.x86$BuildType\bin\x86_amd64" "$tempRoot\bin\HostX86\x64"
+Move-Item "$DropRoot\binaries.x86$BuildType\bin\x86_arm" "$tempRoot\bin\HostX86\arm"
+
+Write-Host "Rearranging amd64$BuildType"
+New-Item -ItemType Directory -Path "$tempRoot\bin\HostX64" | Out-Null
+Move-Item "$DropRoot\binaries.amd64$BuildType\bin\amd64" "$tempRoot\bin\HostX64\x64"
+Move-Item "$DropRoot\binaries.amd64$BuildType\bin\amd64_x86" "$tempRoot\bin\HostX64\x86"
+Move-Item "$DropRoot\binaries.amd64$BuildType\bin\amd64_arm" "$tempRoot\bin\HostX64\arm"
+
+# Only copy files and directories that already exist in the VS installation.
+Write-Host "Rearranging inc, lib"
+New-Item -ItemType Directory -Path "$tempRoot\lib" | Out-Null
+Move-Item "$DropRoot\binaries.x86$BuildType\inc" "$tempRoot\include"
+Move-Item "$DropRoot\binaries.x86$BuildType\lib\i386" "$tempRoot\lib\x86"
+Move-Item "$DropRoot\binaries.amd64$BuildType\lib\amd64" "$tempRoot\lib\x64"
+
+Write-Host "Rearranging atlmfc"
+New-Item -ItemType Directory -Path "$tempRoot\atlmfc" | Out-Null
+New-Item -ItemType Directory -Path "$tempRoot\atlmfc\lib" | Out-Null
+Move-Item "$DropRoot\binaries.x86$BuildType\atlmfc\include" "$tempRoot\atlmfc\include"
+Move-Item "$DropRoot\binaries.x86$BuildType\atlmfc\lib\i386" "$tempRoot\atlmfc\lib\x86"
+Move-Item "$DropRoot\binaries.amd64$BuildType\atlmfc\lib\amd64" "$tempRoot\atlmfc\lib\x64"
+
+[string[]]$toolsets = Get-ChildItem -Path $MSVCRoot -Directory | Sort-Object -Descending
+if ($toolsets.Length -eq 0) {
+ throw "Could not find Visual Studio toolset!"
+}
+
+Write-Host "Found toolsets:`n$($toolsets -join `"`n`")`n"
+$selectedToolset = $toolsets[0]
+Write-Host "Using toolset: $selectedToolset"
+for ($idx = 1; $idx -lt $toolsets.Length; $idx++) {
+ $badToolset = $toolsets[$idx]
+ Write-Host "Deleting toolset: $badToolset"
+ Remove-Item $badToolset -Recurse -Force
+}
+
+Write-Host "Deploying $tempRoot => $selectedToolset"
+Copy-Item "$tempRoot\*" $selectedToolset -Recurse -Force
+Write-Host "Deleting $DropRoot..."
+Remove-Item $DropRoot -Recurse -Force
+Write-Host "Done!"