Skip to content

Commit

Permalink
Patch Tuesday for May 2024 (Again) (#38891)
Browse files Browse the repository at this point in the history
* Update AzCopy, PowerShell Core, and VS.
  • Loading branch information
BillyONeal committed May 25, 2024
1 parent 7fd2b83 commit 01f6021
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 67 deletions.
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!'
}

0 comments on commit 01f6021

Please sign in to comment.