{"id":62550,"date":"2021-10-14T00:30:24","date_gmt":"2021-10-14T08:30:24","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/devops\/?p=62550"},"modified":"2022-07-12T23:57:15","modified_gmt":"2022-07-13T07:57:15","slug":"hosted-pipelines-image-deprecation","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/hosted-pipelines-image-deprecation\/","title":{"rendered":"Hosted Pipelines Image Deprecation"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>Microsoft-hosted Pipelines provides images for the 2 latest versions of macOS, Windows &amp; 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 <code>ubuntu-16.04<\/code>, <code>macOS-10.14<\/code>, <code>macOS-latest<\/code>, <code>vs2017-win2016<\/code>, or <code>windows-latest<\/code>, you will be impacted and this post contains important information for you to read.<\/p>\n<h2>macOS<\/h2>\n<p>macOS 11 Big Sur is the current version of macOS. To make room for the upcoming demand for macOS, we are deprecating <code>macOS-10.14<\/code> images. In <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/pipelines\/get-started\/pipelines-get-started?view=azure-devops&amp;tabs=yaml#define-pipelines-using-yaml-syntax\">YAML Pipelines<\/a>, you can update the pipeline by editing the YAML:<\/p>\n<pre><code class=\"yaml\">jobs:\n- job: macOS1015\n  pool:\n    vmImage: 'macOS-1015'\n  steps:\n  - bash: |\n      echo hello from macOS Catalina\n      sw_vers\n- job: macOS11\n  pool:\n    vmImage: 'macOS-11'\n  steps:\n  - bash: |\n      echo hello from macOS Big Sur\n      sw_vers\n- job: macOSlatest\n  pool:\n    vmImage: 'macOS-latest'\n  steps:\n  - bash: |\n      echo hello from the latest version of macOS available\n      sw_vers\n<\/code><\/pre>\n<p><strong>Note<\/strong>: Image <code>macOS-latest<\/code> will reference image <code>macoS-11<\/code> soon.<\/p>\n<h2>Ubuntu<\/h2>\n<p>When using <code>ubuntu-latest<\/code> Azure pipelines now uses Ubuntu 20.04. We are also supporting Ubuntu 18.04 with the <code>ubuntu-18.04<\/code> image. In <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/pipelines\/get-started\/pipelines-get-started?view=azure-devops&amp;tabs=yaml#define-pipelines-using-yaml-syntax\">YAML Pipelines<\/a>, you can update the pipeline by editing the YAML:<\/p>\n<pre><code class=\"yaml\">jobs:\n- job: ubuntu1804\n  pool:\n    vmImage: 'ubuntu-18.04'\n  steps:\n  - bash: |\n      echo Hello from Ubuntu 18.04\n      lsb_release -d\n- job: ubuntu2004\n  pool:\n    vmImage: 'ubuntu-20.04'\n  steps:\n  - bash: |\n      echo Hello from Ubuntu 20.04\n      lsb_release -d\n- job: ubuntulatest\n  pool:\n    vmImage: 'ubuntu-latest'\n  steps:\n  - bash: |\n      echo Hello from the latest version of Ubuntu available\n      lsb_release -d\n<\/code><\/pre>\n<p><strong>Important<\/strong>: We are removing <code>ubuntu-16.04<\/code> soon, as <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/release-notes\/2021\/pipelines\/sprint-187-update#ubuntu-1604-will-be-removed-from-microsoft-hosted-pools-in-september-2021\">planned<\/a>.<\/p>\n<h2>Windows<\/h2>\n<p>Recently, we made Windows 2022 available as a pipeline image. Specify <code>windows-2022<\/code> to use this image. The sample YAML below shows the evailable Windows images:<\/p>\n<pre><code class=\"yaml\">- job: 'windows2019'\n  displayName: 'windows-2019 image'\n  pool:\n    vmImage: 'windows-2019'\n  steps:\n  - pwsh: |\n      Write-Host \"hello from Windows 2019 with Visual Studio 2019\"\n      Get-ComputerInfo | Select-Object WindowsProductName\n\n- job: 'windows2022'\n  displayName: 'windows-2022 image'\n  pool:\n    vmImage: 'windows-2022'\n  steps:\n  - pwsh: |\n      Write-Host \"hello from Windows 2022 with Visual Studio 2022\"\n      Get-ComputerInfo | Select-Object WindowsProductName\n\n- job: 'windowslatest'\n  displayName: 'windows-latest image'\n  pool:\n    vmImage: 'windows-latest'\n  steps:\n  - pwsh: |\n      Write-Host \"hello from the latest version of Windows available\"\n      Get-ComputerInfo | Select-Object WindowsProductName\n<\/code><\/pre>\n<p><strong>Important<\/strong>: With the upcoming end of mainstream support on Windows 2016 in <a href=\"https:\/\/docs.microsoft.com\/en-us\/lifecycle\/products\/windows-server-2016\">January 2022<\/a>, we are deprecating <code>vs2017-win2016<\/code> images starting November 15. Retirement is planned for March 2022.<\/p>\n<p><strong>Update<\/strong>: The <code>vs2017-win2016<\/code> Windows 2016 image will be retired July 2022.<\/p>\n<p>We understand this may impact your pipelines. If you are using <code>vs2017-win2016<\/code> these are options to move forward:<br \/>\n&#8211; Start using the <code>windows-2019<\/code> image. This image contains most of the <a href=\"https:\/\/github.com\/actions\/virtual-environments\/blob\/main\/images\/win\/Windows2019-Readme.md\">tools<\/a> (e.g. .NET Framework versions) currently available on <code>vs2017-win2016<\/code>.<br \/>\n&#8211; In many cases, your apps can be migrated to build on a newer version of Visual Studio with <a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/porting\/port-migrate-and-upgrade-visual-studio-projects?view=vs-2019\">minimal effort<\/a>.<\/p>\n<h2>Finding impacted pipelines<\/h2>\n<p>To identify pipelines that are using a deprecated (e.g. <code>vs2017-win2016<\/code>) image, you can check the following location:<br \/>\n<code>https:\/\/dev.azure.com\/{organization}\/{project}\/_settings\/agentqueues<\/code><\/p>\n<p>Then, filter on the image name:<br \/>\n<a href=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2021\/10\/pool-filter-vs2017-win2016-1024x660-1.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2021\/10\/pool-filter-vs2017-win2016-1024x660-1.png\" alt=\"Image pool filter\" width=\"1024\" height=\"660\" class=\"alignnone size-full wp-image-62553\" srcset=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2021\/10\/pool-filter-vs2017-win2016-1024x660-1.png 1024w, https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2021\/10\/pool-filter-vs2017-win2016-1024x660-1-300x193.png 300w, https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2021\/10\/pool-filter-vs2017-win2016-1024x660-1-768x495.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>You can also query job history for deprecated images across projects using the script <a href=\"https:\/\/github.com\/microsoft\/azure-pipelines-agent\/tree\/master\/tools\/FindPipelinesUsingRetiredImages\">located here<\/a>:<\/p>\n<p><code>.\/QueryJobHistoryForRetiredImages.ps1 -accountUrl https:\/\/dev.azure.com\/{org} -pat {pat}<\/code><\/p>\n<h2>Resources<\/h2>\n<p><a href=\"https:\/\/github.com\/actions\/virtual-environments\/tree\/main\/images\">Image configurations<\/a><br \/>\n<a href=\"https:\/\/github.com\/actions\/virtual-environments\/blob\/main\/docs\/software-and-images-guidelines.md#software-and-images-support-policy\">Software and images support policy<\/a><br \/>\n<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/release-notes\/2020\/pipelines\/sprint-177-update#ubuntu-latest-pipelines-will-soon-use-ubuntu-2004\">Sprint 177 Release Notes<\/a><br \/>\n<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/release-notes\/2021\/pipelines\/sprint-187-update#ubuntu-1604-will-be-removed-from-microsoft-hosted-pools-in-september-2021\">Sprint 187 Release Notes<\/a><br \/>\n<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/release-notes\/2021\/pipelines\/sprint-192-update#windows-server-2022-with-visual-studio-2022-is-now-available-on-microsoft-hosted-agents-preview\">Sprint 192 Release Notes<\/a><br \/>\n<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/release-notes\/2021\/pipelines\/sprint-193-update\">Sprint 193 Release Notes<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft-hosted Pipelines provides images for the 2 latest versions of macOS, Windows &#038; Ubuntu. In this blog post we want to update you on recent and upcoming changes for each of those operating systems.<\/p>\n","protected":false},"author":26231,"featured_media":62562,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[226],"tags":[],"class_list":["post-62550","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ci"],"acf":[],"blog_post_summary":"<p>Microsoft-hosted Pipelines provides images for the 2 latest versions of macOS, Windows &#038; Ubuntu. In this blog post we want to update you on recent and upcoming changes for each of those operating systems.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/62550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/26231"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=62550"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/62550\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/62562"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=62550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=62550"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=62550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}