Skip to content

Checklist for Toolset Updates

Stephan T. Lavavej edited this page Aug 25, 2022 · 31 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 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

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 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
  3. Run $/azure-devops/create-1es-hosted-pool.ps1. This should take approximately 25 minutes.
    • Update this page if the expected time seems to be consistently wrong.
  4. Update $/azure-pipelines.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.
    • 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).

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