Skip to content

Checklist for Toolset Updates

Stephan T. Lavavej edited this page Jul 9, 2024 · 26 revisions

Initial Setup

This is a one-time process on your development machine:

  1. Install PowerShell 7.x. This installs pwsh.exe.
  2. 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
      

Toolset Update

  1. Create a new branch in your own fork.
  2. 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 in provision-image.ps1.
    • Check Azure VM spot pricing and 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 2022 update history with the latest available version:
      ((Get-AzVMImage -Location eastus2 -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2022-datacenter-g2).Version | Sort-Object -Descending { [version] $_ })[0]
  3. 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.
  4. Update $/azure-devops/config.yml to point to the new pool.
  5. Update $/README.md to mention any new toolset/dependency versions.
  6. Create/update a PR from your branch to microsoft/STL.
    • You must manually grant permission:
      1. Click Details for the STL-CI check.
      2. Click View more details on Azure Pipelines.
      3. Click View on the banner that says, "This pipeline needs permission to access a resource before this run can continue to Code Format".
      4. Click Permit.
      5. 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.
  7. After merging your PR, wait for a successful CI run, then cleanup the old pool and resource group (see below).
  8. ⚠️ The next STL-ASan-CI run will also need to be granted permission!

Cleanup

⚠️ Be careful! Don't delete machinery that's in use!

  1. Delete the pool from https://dev.azure.com/vclibs/_settings/agentpools .
  2. Delete the resource group from the Azure portal.

Resource Groups

  1. Go to https://portal.azure.com
  2. Click Subscriptions
  3. 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
  4. Left column > Settings > click Resource groups