mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-02 18:29:13 +08:00
b8755728ab
* Adds scripts to generate scale sets for testing Linux. * Note workaround for https://github.com/microsoft/azure-pipelines-agent/pull/2929 * Switches Windows validation to 'Spot' VMs. * Opens the git port 9418. * Removes provisioning of the no longer used 'logs' file share. * Changes Azure region to 'westus2', which is cheaper. * Adds +x to all the scripts in scripts/azure-pipelines. * Use 'xml-results' for all platforms instead of 'raw xml results' on Windows.
89 lines
2.7 KiB
PowerShell
89 lines
2.7 KiB
PowerShell
# Copyright (c) Microsoft Corporation.
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
<#
|
|
.SYNOPSIS
|
|
Sets up the environment to run other vcpkg CI steps in an Azure Pipelines job.
|
|
|
|
.DESCRIPTION
|
|
This script maps network drives from infrastructure and cleans out anything that
|
|
might have been leftover from a previous run.
|
|
|
|
.PARAMETER ForceAllPortsToRebuildKey
|
|
A subdirectory / key to use to force a build without any previous run caching,
|
|
if necessary.
|
|
#>
|
|
|
|
[CmdletBinding()]
|
|
Param(
|
|
[string]$ForceAllPortsToRebuildKey = ''
|
|
)
|
|
|
|
$StorageAccountName = $env:StorageAccountName
|
|
$StorageAccountKey = $env:StorageAccountKey
|
|
|
|
function Remove-DirectorySymlink {
|
|
Param([string]$Path)
|
|
if (Test-Path $Path) {
|
|
[System.IO.Directory]::Delete($Path)
|
|
}
|
|
}
|
|
|
|
Write-Host 'Setting up archives mount'
|
|
if (-Not (Test-Path W:)) {
|
|
net use W: "\\$StorageAccountName.file.core.windows.net\archives" /u:"AZURE\$StorageAccountName" $StorageAccountKey
|
|
}
|
|
|
|
Write-Host 'Creating downloads directory'
|
|
mkdir D:\downloads -ErrorAction SilentlyContinue
|
|
|
|
# Delete entries in the downloads folder, except:
|
|
# those in the 'tools' folder
|
|
# those last accessed in the last 30 days
|
|
Get-ChildItem -Path D:\downloads -Exclude "tools" `
|
|
| Where-Object{ $_.LastAccessTime -lt (get-Date).AddDays(-30) } `
|
|
| ForEach-Object{Remove-Item -Path $_ -Recurse -Force}
|
|
|
|
# Msys sometimes leaves a database lock file laying around, especially if there was a failed job
|
|
# which causes unrelated failures in jobs that run later on the machine.
|
|
# work around this by just removing the vcpkg installed msys2 if it exists
|
|
if( Test-Path D:\downloads\tools\msys2 )
|
|
{
|
|
Write-Host "removing previously installed msys2"
|
|
Remove-Item D:\downloads\tools\msys2 -Recurse -Force
|
|
}
|
|
|
|
Write-Host 'Setting up archives path...'
|
|
if ([string]::IsNullOrWhiteSpace($ForceAllPortsToRebuildKey))
|
|
{
|
|
$archivesPath = 'W:\'
|
|
}
|
|
else
|
|
{
|
|
$archivesPath = "W:\force\$ForceAllPortsToRebuildKey"
|
|
if (-Not (Test-Path $fullPath)) {
|
|
Write-Host 'Creating $archivesPath'
|
|
mkdir $archivesPath
|
|
}
|
|
}
|
|
|
|
Write-Host "Linking archives => $archivesPath"
|
|
Remove-DirectorySymlink archives
|
|
cmd /c "mklink /D archives $archivesPath"
|
|
|
|
Write-Host 'Linking installed => E:\installed'
|
|
Remove-DirectorySymlink installed
|
|
Remove-Item E:\installed -Recurse -Force -ErrorAction SilentlyContinue
|
|
mkdir E:\installed
|
|
cmd /c "mklink /D installed E:\installed"
|
|
|
|
Write-Host 'Linking downloads => D:\downloads'
|
|
Remove-DirectorySymlink downloads
|
|
cmd /c "mklink /D downloads D:\downloads"
|
|
|
|
Write-Host 'Cleaning buildtrees'
|
|
Remove-Item buildtrees\* -Recurse -Force -errorAction silentlycontinue
|
|
|
|
Write-Host 'Cleaning packages'
|
|
Remove-Item packages\* -Recurse -Force -errorAction silentlycontinue
|