-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Checklist for Toolset Updates
Stephan T. Lavavej edited this page Mar 11, 2025
·
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 latest installed version of Azure PowerShell:
(Get-InstalledModule -Name Az -AllVersions).Version
- To update Azure PowerShell:
Update-Module -Name Az -Scope CurrentUser
- If you ever need to uninstall Azure PowerShell (unusual), delete:
%OneDrive%\Documents\PowerShell
- To install:
- Create a new branch in your own fork.
- Edit
$/azure-devops/create-1es-hosted-pool.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 the internal price list.
- To find available VM sizes:
(Get-AzVMSize -Location eastus2).Name | Sort-Object
- To find available OS SKUs:
(Get-AzVMImageSku -Location eastus2 -PublisherName MicrosoftWindowsServer -Offer WindowsServer).Skus
- To compare Windows Server 2025 update history with the latest available version:
((Get-AzVMImage -Location eastus2 -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2025-datacenter-azure-edition).Version | Sort-Object -Descending { [version] $_ })[0]
- For Azure Edition, the second component of the version number might not match, so inspect the third component. For example, on Patch Tuesday 2025-03-11, the website listed January as 26100.2894, February as 26100.3194, and March as 26100.3476. The
Get-AzVMImage
incantation returned 26100.2894.250306. The second component looks like January's version number, but the third component denotes [20]25-03-06, i.e. a 5-day-old image, which indicates that it's good to use. We believe this happens because Azure Edition is capable of hotpatching. If the third component doesn't appear to be recent, then there may have been a delay in preparing updated images, so you might want to wait before preparing a toolset update.
- For Azure Edition, the second component of the version number might not match, so inspect the third component. For example, on Patch Tuesday 2025-03-11, the website listed January as 26100.2894, February as 26100.3194, and March as 26100.3476. The
- Run
$/azure-devops/create-1es-hosted-pool.ps1
. This should take approximately 40 minutes.- Update this page if the expected time seems to be consistently wrong.
- Update
$/azure-devops/config.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.
- You must manually grant permission:
- Click Details for the STL-CI check.
- Click View more details on Azure Pipelines.
- Click View on the banner that says, "This pipeline needs permission to access a resource before this run can continue to Code Format".
- Click Permit.
- Click Permit again.
- If there are substantial code review changes, cleanup the abandoned pool and resource group (see below), make the code review requested changes, and restart from step 3.
- You must manually grant permission:
- After merging your PR, wait for a successful CI run, then cleanup the old pool and resource group (see below).
⚠️ The next STL-ASan-CI run will also need to be granted permission!
- Delete the pool from https://dev.azure.com/vclibs/_settings/agentpools .
- Delete the 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