October 14th, 2021
heart1 reaction

Hosted Pipelines Image Deprecation

Principal Product Manager

Introduction

Microsoft-hosted Pipelines provides images for the 2 latest versions of macOS, Windows & Ubuntu. In this blog post we want to update you on recent and upcoming changes for each of those operating systems. If you have pipelines that use ubuntu-16.04, macOS-10.14, macOS-latest, vs2017-win2016, or windows-latest, you will be impacted and this post contains important information for you to read.

macOS

macOS 11 Big Sur is the current version of macOS. To make room for the upcoming demand for macOS, we are deprecating macOS-10.14 images. In YAML Pipelines, you can update the pipeline by editing the YAML:

jobs:
- job: macOS1015
  pool:
    vmImage: 'macOS-1015'
  steps:
  - bash: |
      echo hello from macOS Catalina
      sw_vers
- job: macOS11
  pool:
    vmImage: 'macOS-11'
  steps:
  - bash: |
      echo hello from macOS Big Sur
      sw_vers
- job: macOSlatest
  pool:
    vmImage: 'macOS-latest'
  steps:
  - bash: |
      echo hello from the latest version of macOS available
      sw_vers

Note: Image macOS-latest will reference image macoS-11 soon.

Ubuntu

When using ubuntu-latest Azure pipelines now uses Ubuntu 20.04. We are also supporting Ubuntu 18.04 with the ubuntu-18.04 image. In YAML Pipelines, you can update the pipeline by editing the YAML:

jobs:
- job: ubuntu1804
  pool:
    vmImage: 'ubuntu-18.04'
  steps:
  - bash: |
      echo Hello from Ubuntu 18.04
      lsb_release -d
- job: ubuntu2004
  pool:
    vmImage: 'ubuntu-20.04'
  steps:
  - bash: |
      echo Hello from Ubuntu 20.04
      lsb_release -d
- job: ubuntulatest
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - bash: |
      echo Hello from the latest version of Ubuntu available
      lsb_release -d

Important: We are removing ubuntu-16.04 soon, as planned.

Windows

Recently, we made Windows 2022 available as a pipeline image. Specify windows-2022 to use this image. The sample YAML below shows the evailable Windows images:

- job: 'windows2019'
  displayName: 'windows-2019 image'
  pool:
    vmImage: 'windows-2019'
  steps:
  - pwsh: |
      Write-Host "hello from Windows 2019 with Visual Studio 2019"
      Get-ComputerInfo | Select-Object WindowsProductName

- job: 'windows2022'
  displayName: 'windows-2022 image'
  pool:
    vmImage: 'windows-2022'
  steps:
  - pwsh: |
      Write-Host "hello from Windows 2022 with Visual Studio 2022"
      Get-ComputerInfo | Select-Object WindowsProductName

- job: 'windowslatest'
  displayName: 'windows-latest image'
  pool:
    vmImage: 'windows-latest'
  steps:
  - pwsh: |
      Write-Host "hello from the latest version of Windows available"
      Get-ComputerInfo | Select-Object WindowsProductName

Important: With the upcoming end of mainstream support on Windows 2016 in January 2022, we are deprecating vs2017-win2016 images starting November 15. Retirement is planned for March 2022.

Update: The vs2017-win2016 Windows 2016 image will be retired July 2022.

We understand this may impact your pipelines. If you are using vs2017-win2016 these are options to move forward:
– Start using the windows-2019 image. This image contains most of the tools (e.g. .NET Framework versions) currently available on vs2017-win2016.
– In many cases, your apps can be migrated to build on a newer version of Visual Studio with minimal effort.

Finding impacted pipelines

To identify pipelines that are using a deprecated (e.g. vs2017-win2016) image, you can check the following location:
https://dev.azure.com/{organization}/{project}/_settings/agentqueues

Then, filter on the image name: