-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Checklist for Toolset Updates
Stephan T. Lavavej edited this page Aug 25, 2022
·
31 revisions
This is a one-time process on your development machine:
-
Install PowerShell 7.x. This installs
pwsh.exe
. -
Install Azure PowerShell.
- To install:
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force
- To sign in:
Connect-AzAccount
- To check the installed versions of Azure PowerShell:
Get-InstalledModule -Name Az -AllVersions | Select-Object -Property Name, Version
- To update Azure PowerShell:
Update-Module -Name Az -Scope CurrentUser
- To install:
- Create a new branch in your own fork.
- Edit
$/azure-devops/create-vmss.ps1
and$/azure-devops/provision-image.ps1
to make the changes/updates you want to make. Most changes will be merely updating version numbers which happens inprovision-image.ps1
.- Check Azure VM spot pricing and the internal price list.
- To find new SKUs:
(Get-AzVMImageSku -Location westus2 -PublisherName MicrosoftWindowsServer -Offer WindowsServer).Skus
- To compare Windows Server 2022 update history with the latest available version:
(Get-AzVMImage -Location westus2 -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2022-datacenter-g2).Version
- Run
$/azure-devops/create-vmss.ps1
. This should take approximately 25 minutes. - On https://dev.azure.com/vclibs/STL/_settings/agentqueues, add a new Azure virtual machine scale set pool pointing to the scale set generated in the previous step.
- Give the pool the same name as the generated resource group to make them easy to find.
- Give the pool a description (including the toolset version) to make it easier to distinguish different pools.
- Choose a maximum number of 64 machines with 0 standby machines. (This leaves enough room to create one more VM for this update process. 64 VMs * 32 cores each + 1 VM with 32 cores = 2080 cores total, less than our 2624 core quota.)
- Set the "delay before deleting excess idle agents" to 1 minute.
- Check the checkbox that says "Grant access permission to all pipelines".
- Update
$/azure-pipelines.yml
to point to the new pool. - Update
$/README.md
to mention any new toolset/dependency versions. - Create/update a PR from your branch to microsoft/STL. If there are substantial code review changes, delete the created pool from https://dev.azure.com/vclibs/_settings/agentpools, delete the resource group from the Azure portal, make the code review requested changes, and restart from step 3.
- After your PR merges, delete the old unused pool from https://dev.azure.com/vclibs/_settings/agentpools, and the previous resource group from the Azure portal.
- Go to https://portal.azure.com
- Click Subscriptions
- Click CPP_STL_GitHub
- If you don't see that at first:
- Check "Show only subscriptions selected in the global subscriptions filter"
- Click "global subscriptions filter"
- Select CPP_STL_GitHub
- Left column > Settings > click Resource groups