Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patch Tuesday for May 2024 (Again) #38891

Merged
merged 5 commits into from
May 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/android/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1.4
# DisableDockerDetector "Used to build the container deployed to Azure Container Registry"
FROM ubuntu:focal-20240216
FROM ubuntu:focal-20240427

ADD https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb /packages-microsoft-prod.deb
ADD https://dl.google.com/android/repository/android-ndk-r25c-linux.zip /android-ndk-r25c-linux.zip
Expand Down
18 changes: 3 additions & 15 deletions scripts/azure-pipelines/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@
# SPDX-License-Identifier: MIT
#
variables:
linux-pool: 'PrLin-1ES-Pool'
windows-pool: 'PrWin-1ES'
osx-pool: 'PrOsx-2024-01-18'
osx-arm64-pool: 'PrOsx-2024-01-22-arm64'
linux-docker-image: 'vcpkgandroidwus3.azurecr.io/vcpkg-android:2024-04-11'
linux-docker-image: 'vcpkgandroidwus3.azurecr.io/vcpkg-android:2024-05-17'

parameters:
- name: vcpkgToolSha
Expand Down Expand Up @@ -37,70 +33,62 @@ jobs:
- template: windows/azure-pipelines.yml
parameters:
jobName: x86_windows
poolName: $(windows-pool)
vcpkgToolSha: ${{ parameters.vcpkgToolSha }}
tripletPattern: ${{ parameters.tripletPattern }}

- template: windows/azure-pipelines.yml
parameters:
jobName: x64_windows
poolName: $(windows-pool)
vcpkgToolSha: ${{ parameters.vcpkgToolSha }}
tripletPattern: ${{ parameters.tripletPattern }}

- template: windows/azure-pipelines.yml
parameters:
jobName: x64_windows_static
poolName: $(windows-pool)
vcpkgToolSha: ${{ parameters.vcpkgToolSha }}
tripletPattern: ${{ parameters.tripletPattern }}

- template: windows/azure-pipelines.yml
parameters:
jobName: x64_windows_static_md
poolName: $(windows-pool)
vcpkgToolSha: ${{ parameters.vcpkgToolSha }}
tripletPattern: ${{ parameters.tripletPattern }}

- template: windows/azure-pipelines.yml
parameters:
jobName: x64_uwp
poolName: $(windows-pool)
vcpkgToolSha: ${{ parameters.vcpkgToolSha }}
tripletPattern: ${{ parameters.tripletPattern }}

- template: windows/azure-pipelines.yml
parameters:
jobName: arm64_windows
poolName: $(windows-pool)
vcpkgToolSha: ${{ parameters.vcpkgToolSha }}
tripletPattern: ${{ parameters.tripletPattern }}

- template: windows/azure-pipelines.yml
parameters:
jobName: arm64_uwp
poolName: $(windows-pool)
vcpkgToolSha: ${{ parameters.vcpkgToolSha }}
tripletPattern: ${{ parameters.tripletPattern }}

- template: osx/azure-pipelines.yml
parameters:
jobName: x64_osx
poolName: $(osx-pool)
poolName: 'PrOsx-2024-01-18'
vcpkgToolSha: ${{ parameters.vcpkgToolSha }}
tripletPattern: ${{ parameters.tripletPattern }}

- template: osx/azure-pipelines.yml
parameters:
jobName: arm64_osx
poolName: $(osx-arm64-pool)
poolName: 'PrOsx-2024-01-22-arm64'
vcpkgToolSha: ${{ parameters.vcpkgToolSha }}
tripletPattern: ${{ parameters.tripletPattern }}

- template: linux/azure-pipelines.yml
parameters:
jobName: x64_linux
poolName: $(linux-pool)
vcpkgToolSha: ${{ parameters.vcpkgToolSha }}
tripletPattern: ${{ parameters.tripletPattern }}

Expand Down
4 changes: 1 addition & 3 deletions scripts/azure-pipelines/linux/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ parameters:
- name: jobName
type: string
default: 'x64_linux'
- name: poolName
type: string
- name: tripletPattern
displayName: 'Enable the triplets which contain this substring'
type: string
Expand All @@ -21,7 +19,7 @@ jobs:
- job: x64_linux
condition: and(succeeded(), contains('^${{ replace(parameters.jobName, '_', '-') }}$', '${{ parameters.tripletPattern }}'))
pool:
name: ${{ parameters.poolName }}
name: PrLin-1ES-Pool
workspace:
clean: resources
timeoutInMinutes: 1440 # 1 day
Expand Down
5 changes: 2 additions & 3 deletions scripts/azure-pipelines/windows/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ parameters:
- name: jobName
type: string
default: 'x86_windows'
- name: poolName
type: string
- name: tripletPattern
displayName: 'Enable the triplets which contain this substring'
type: string
Expand All @@ -21,7 +19,8 @@ jobs:
- job: ${{ parameters.jobName }}
condition: and(succeeded(), contains('^${{ replace(parameters.jobName, '_', '-') }}$', '${{ parameters.tripletPattern }}'))
pool:
name: ${{ parameters.poolName }}
name: PrWin-1ES
demands: ImageVersionOverride -equals 2024.05.24
workspace:
clean: resources
timeoutInMinutes: 2880 # 2 days
Expand Down
32 changes: 18 additions & 14 deletions scripts/azure-pipelines/windows/create-image.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ $WindowsServerSku = '2022-datacenter-azure-edition'
$ErrorActionPreference = 'Stop'

$ProgressActivity = 'Creating Windows Image'
$TotalProgress = 17
$TotalProgress = 18
$CurrentProgress = 1

# Assigning this to another variable helps when running the commands in this script manually for
Expand Down Expand Up @@ -87,11 +87,11 @@ Write-Progress `

$VcpkgImageMintingAccount = Get-AzStorageAccount -ResourceGroupName 'vcpkg-image-minting' -Name 'vcpkgimageminting'

# Grant 'Storage Blob Data Reader' (RoleDefinitionId 2a2b9908-6ea1-4ae2-8e65-a410df84e7d1) to the VM
New-AzRoleAssignment `
-Scope $VcpkgImageMintingAccount.ID `
-RoleDefinitionId '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1' `
-ObjectId $VMCreated.Identity.PrincipalId
$CudnnStorageContext = New-AzStorageContext -StorageAccountName 'vcpkgimageminting' -UseConnectedAccount
$StartTime = Get-Date
$ExpiryTime = $StartTime.AddDays(1)
$CudnnSas = New-AzStorageContainerSASToken -Name 'assets' -Permission r -StartTime $StartTime -ExpiryTime $ExpiryTime -Context $CudnnStorageContext
$CudnnUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/cudnn-windows-x86_64-8.8.1.3_cuda12-archive.zip?$CudnnSas"

####################################################################################################
Write-Progress `
Expand Down Expand Up @@ -127,7 +127,8 @@ Write-Host "deploy-psexec.ps1 output: $($DeployPsExecResult.value.Message)"
function Invoke-ScriptWithPrefix {
param(
[string]$ScriptName,
[switch]$AddAdminPw
[switch]$AddAdminPw,
[string]$CudnnUrl = $null
)

Write-Progress `
Expand All @@ -146,6 +147,10 @@ function Invoke-ScriptWithPrefix {
}

$script = $script.Replace('# REPLACE WITH UTILITY-PREFIX.ps1', $UtilityPrefixContent);
if (-not [string]::IsNullOrEmpty($CudnnUrl)) {
$script = $script.Replace('# REPLACE WITH CudnnUrl', "`$CudnnUrl = `"$CudnnUrl`"")
}

Set-Content -Path $tempScriptFilename -Value $script -Encoding utf8NoBOM

$parameter = $null
Expand All @@ -166,8 +171,6 @@ function Invoke-ScriptWithPrefix {
}
}

Invoke-ScriptWithPrefix -ScriptName 'deploy-azcopy.ps1'

####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'deploy-windows-sdks.ps1' -AddAdminPw

Expand All @@ -180,6 +183,12 @@ Invoke-ScriptWithPrefix -ScriptName 'deploy-mpi.ps1' -AddAdminPw
####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'deploy-cuda.ps1' -AddAdminPw

####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'deploy-cudnn.ps1' -CudnnUrl $CudnnUrl

####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'test-cudnn.ps1'

####################################################################################################
Invoke-ScriptWithPrefix -ScriptName 'deploy-inteloneapi.ps1' -AddAdminPw

Expand Down Expand Up @@ -256,11 +265,6 @@ Write-Progress `
-Status 'Deleting unused temporary resources' `
-PercentComplete (100 / $TotalProgress * $CurrentProgress++)

Remove-AzRoleAssignment `
-Scope $VcpkgImageMintingAccount.ID `
-RoleDefinitionId '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1' `
-ObjectId $VMCreated.Identity.PrincipalId

Remove-AzVM -Id $VMCreated.ID -Force
Remove-AzDisk -ResourceGroupName 'vcpkg-image-minting' -Name $VMCreatedOsDisk -Force
Remove-AzNetworkInterface -ResourceGroupName 'vcpkg-image-minting' -Name $NicName -Force
Expand Down
4 changes: 0 additions & 4 deletions scripts/azure-pipelines/windows/deploy-azcopy.ps1

This file was deleted.

25 changes: 0 additions & 25 deletions scripts/azure-pipelines/windows/deploy-cuda.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@

# If you are running this script outside of our Azure VMs, you will need to download cudnn from NVIDIA and place
# it next to this script.
$CudnnUrl = 'https://vcpkgimageminting.blob.core.windows.net/assets/cudnn-windows-x86_64-8.8.1.3_cuda12-archive.zip'

$CudnnLocalZipPath = "$PSScriptRoot\cudnn-windows-x86_64-8.8.1.3_cuda12-archive.zip"

$CudaUrl = 'https://developer.download.nvidia.com/compute/cuda/12.1.0/network_installers/cuda_12.1.0_windows_network.exe'

Expand Down Expand Up @@ -82,25 +79,3 @@ catch {
Write-Error "Failed to install CUDA! $($_.Exception.Message)"
throw
}

try {
if (Test-Path $CudnnLocalZipPath) {
$cudnnZipPath = $CudnnLocalZipPath
} else {
Write-Host 'Attempting to download cudnn. If this fails, you need to agree to NVidia''s EULA, download cudnn, and place it next to this script.'
$cudnnZipPath = Get-TempFilePath -Extension 'zip'
$env:AZCOPY_AUTO_LOGIN_TYPE = 'MSI'
& "$env:PROGRAMFILES\azcopy_windows_amd64_10.23.0\azcopy.exe" copy $CudnnUrl $cudnnZipPath
if ($LASTEXITCODE -ne 0) {
throw 'Failed to download cudnn!'
}
}

Write-Host "Installing CUDNN to $destination..."
tar.exe -xvf "$cudnnZipPath" --strip 1 --directory "$destination"
Write-Host 'Installation successful!'
}
catch {
Write-Error "Failed to install CUDNN! $($_.Exception.Message)"
throw
}
28 changes: 28 additions & 0 deletions scripts/azure-pipelines/windows/deploy-cudnn.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# REPLACE WITH UTILITY-PREFIX.ps1

# REPLACE WITH CudnnUrl

$destination = "$env:ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v12.1"

$CudnnLocalZipPath = "$PSScriptRoot\cudnn-windows-x86_64-8.8.1.3_cuda12-archive.zip"

try {
if (Test-Path $CudnnLocalZipPath) {
$cudnnZipPath = $CudnnLocalZipPath
} else {
Write-Host 'Attempting to download cudnn. If this fails, you need to agree to NVidia''s EULA, download cudnn, and place it next to this script.'
$cudnnZipPath = Get-TempFilePath -Extension 'zip'
& curl.exe -L -o $cudnnZipPath $CudnnUrl
if ($LASTEXITCODE -ne 0) {
throw 'Failed to download cudnn!'
}
}

Write-Host "Installing CUDNN to $destination..."
tar.exe -xvf "$cudnnZipPath" --strip 1 --directory "$destination"
Write-Host 'Installation successful!'
}
catch {
Write-Error "Failed to install CUDNN! $($_.Exception.Message)"
throw
}
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/windows/deploy-pwsh.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@

# REPLACE WITH UTILITY-PREFIX.ps1

$PwshUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.4.1/PowerShell-7.4.1-win-x64.msi'
$PwshUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.4.2/PowerShell-7.4.2-win-x64.msi'
InstallMSI -Url $PwshUrl -Name 'PowerShell Core'
2 changes: 1 addition & 1 deletion scripts/azure-pipelines/windows/deploy-visual-studio.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# REPLACE WITH UTILITY-PREFIX.ps1

# See https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-history
$VisualStudioBootstrapperUrl = 'https://download.visualstudio.microsoft.com/download/pr/ec7bd8ef-2c51-4e4f-a83f-9087ffbe8b76/f7fdf51d7c15b65c60f0f358776576f4423417da603ef46a213bd69ad463e9e2/vs_Enterprise.exe'
$VisualStudioBootstrapperUrl = 'https://download.visualstudio.microsoft.com/download/pr/a8a3940c-d415-4078-8df8-6af787f56dfa/ff486670bce61323e52b208ecbb71dc05b034c8bf156d0b7bfc0ad67b2611445/vs_Enterprise.exe'
$Workloads = @(
'Microsoft.VisualStudio.Workload.NativeDesktop',
'Microsoft.VisualStudio.Workload.Universal',
Expand Down
5 changes: 5 additions & 0 deletions scripts/azure-pipelines/windows/test-cudnn.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if (Test-Path "$env:ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v12.1\include\cudnn.h") {
Write-Host 'cudnn appears correctly installed'
} else {
Write-Error 'cudnn appears broken!'
}