vcpkg/scripts/azure-pipelines/patch-tuesday-checklist.md

2.4 KiB

First time machine setup:

Each Patch Tuesday:

  • Check for depends:vm-update PRs and make relevant changes if possible.
  • Check for Service 360 alerts (possibly at https://aka.ms/s360 ?) against the service named "C++ VCPKG Validation" about vulnerable software we are installing in the VMs and update that. (Most often PowerShell needs to be updated)
  • Check for any other software for the Windows images we wish to update and make the edits to do so in scripts/azure-pipelines/windows
  • Run android/create-docker-image.ps1
  • Update azure-pipelines.yml to point to the new linux docker image from Azure Container Registry
  • Run windows/create-image.ps1
  • Run windows/create-vmss.ps1
  • Create new pools for these in Azure DevOps: https://dev.azure.com/vcpkg/public/_settings/agentqueues
    • Windows: 22 agents
    • Make sure to check 'Grant access permission to all pipelines'
  • Update azure-pipelines.yml to point to the new pools.
  • Submit PR with those changes.
  • Submit a full CI rebuild with those changes: https://dev.azure.com/vcpkg/public/_build?definitionId=29
    refs/pull/NUMBER/head
  • Look at that and compare with recent build and resolve anything that's not an existing baseline issue.
  • Merge the PR.
  • Update the managed image for compiler testing and delete unused images.
    • CPP_GITHUB\vcpkg-image-minting\PrWinEA
    • Standard HDD LRS
      • East Asia, 1 Replica
      • West US 2, 1 Replica
      • West US 3, 1 Replica
  • After the last build finishes on the previous pool, delete it in the Azure Devops Organization UI and its Resource Group. ( https://dev.azure.com/vcpkg/_settings/agentpools ?)
  • Run generate-sas-tokens.ps1 -KeyNumber N, where N is whether the month is even (Jan = 1, Feb = 2, Mar = 1, and so on) and update the relevant libraries on dev.azure.com/vcpkg and devdiv.visualstudio.com
  • After builds using previous SAS tokens complete, run roll-sas-tokens.ps1 -KeyNumber N where this N is the other key. (Jan = 2, Feb = 1, Mar = 2, and so on)
  • Mint a new macOS base box. (See instructions in scripts/azure-pipelines/osx/README.md)
  • Deploy the new base box to all hosts.