Update: The Ubuntu-20.04 retirement date for Microsoft-hosted agents has been moved to April 30. On Managed DevOps Pools, the ubuntu-20.04 image will be available up to June 30.
To ensure our hosted agents in Azure Pipelines are operating in the most secure and up-to-date environments, we continuously update the supported images and phase out older ones. In October 2024, we announced support for Ubuntu-24.04. Soon, we plan to update the ubuntu-latest image to map to Ubuntu-24.04. Additionally, MacOS 15 Sequoia and Windows 2025 images will be generally available later this year. Alongside these new releases, we will deprecate older images like Ubuntu-20.04 and Windows Server 2019. Please refer to the following subsections for detailed updates on individual images.
Ubuntu
Ubuntu-24.04
The Ubuntu-24.04 Pipelines image is available since October last year. We plan to update the ubuntu-latest image to map to Ubuntu-24.04 soon. After this change all the jobs using ubuntu-latest image will run on ubuntu-24.04 instead of ubuntu-22.04. Please note that some tools are no longer available on the Ubuntu-24.04 image.
Task/Tool | Description |
---|---|
MSBuild@1 | Task doesn’t work as Mono and MSBuild aren’t available for Ubuntu 24. Use native .NET on Ubuntu instead. |
NuGetCommand@2 | Task has reduced functionality as Mono and NuGet aren’t available for Ubuntu 24, see instructions on Migrating to .NET CLI on Ubuntu. |
Terraform | Terraform isn’t available on the ubuntu-24.04 image. You can use the Terraform extension and TerraformInstaller@1 task to make Terraform available in your pipeline. |
Ubuntu-20.04
We are deprecating support for the Ubuntu 20.04 image in Azure Pipelines because it will reach its end of support soon. Please find the deprecation plan for the same below.
Key Dates:
• Deprecation Start Date: March 19, 2025
• Brownout period: 19th March 2025 to 28th March 2025
• Full Removal Date: April 30th, 2025
What This Means for You:
Starting from March 18, 2025, organization using the Ubuntu 20.04 image will begin to see a banner indicating the upcoming deprecation. To raise awareness about the upcoming deprecation we will temporarily fail the jobs (brownout) that are using Ubuntu 20.04 from March 19th 2025 to April 8th 2025. From April 30, 2025, the Ubuntu 20.04 image will be fully removed from our hosted agents, and any pipelines still using this image will fail to run.
Brownout schedule
19th March 2025: 21:00 – 5:00 UTC
21st March 2025: 5:00 – 13:00 UTC
25th March 2025: 13:00 – 21:00 UTC
26th March 2025: 21:00 – 5:00 UTC
28th March 2025: 5:00 – 13:00 UTC
1st April 2025: 13:00 – 21:00 UTC
8th April 2025: 13:00 – 21:00 UTC
Recommended Actions:
To avoid disruptions, we recommend updating your pipelines to use the Ubuntu 22.04 or 24.04 image as soon as possible. The updated Ubuntu images offer improved performance, security, and support for the latest tools and libraries.
How to find out the impacted pipelines
To find out the impacted pipelines that are using the deprecated images please run the script present here.
You can also identify pipelines that are using a deprecated (e.g. ubuntu-20.04) image, by checking the following location: https://dev.azure.com/{organization}/{project}/_settings/agentqueues
Then, filter on the image name, refer the following snapshot.
How to Update Your Pipelines:
1. Open your pipeline YAML file.
2. Locate the vmImage property.
3. Change the value from ubuntu-20.04 to ubuntu-22.04 (ubuntu-24.04, ubuntu-latest).
4. Save and run your pipeline to ensure it works with the new image.
Example:
pool:
vmImage: 'ubuntu-22.04'
pool:
vmImage: 'ubuntu-24.04'
pool:
vmImage: 'ubuntu-latest'
Alternate methods to use Ubuntu 20.04 in Pipeline Jobs
Customers that are still dependent on Ubuntu 20.04 even when it reaches its end of support state, have the following options to Use Ubuntu 20.04 in a pipeline:
Using a Container job allow you to specify a container image independently of the hosted pipeline image. For example:
jobs:
- job: ubuntu20
container: ubuntu:20.04
displayName: Use Ubuntu 20.04 container image
pool:
vmImage: 'ubuntu-latest'
steps:
- script: printenv
With Managed DevOps Pools, you can create an agent pool using the ubuntu-20.04
Azure Pipelines image until June 30. You can also use images from the Azure Marketplace.
Lastly, you can create a Self-hosted agent using any Operating System supported by the Pipelines Agent.
Windows
Windows Server 2025
Windows Server 2025 image is in public preview, and we plan to make the image generally available soon. Look out for further updates on this.
Windows Server 2019
Following the release of Windows Server 2025, we plan to deprecate the Windows Server 2019 images. Stay tuned for updates on the specific dates.
mac-OS
mac-OS Sequoia
mac-OS 15 sequoia image is in public preview as of now and we plan to make it generally available in the coming weeks. Look out for further updates on this.
Apple silicon support for mac-OS image
We understand that there has been significant anticipation for Apple Silicon support in macOS images. We are pleased to inform you that we are currently conducting a private preview. If you want to participate in the private preview, please raise a ticket here. A public preview image is expected to be available later this year.
We understand that some of these changes may require some adjustments to your pipelines, and we are here to help. If you have any questions or need assistance, please reach out to our support team or visit our community forums.
Thank you for your understanding and cooperation as we continue to improve the Azure Pipelines experience.
Our builds - windows-latest also started to fail on April 10, 2025.
Task: AzureCli@2 produces "cannot find the file specified" (seems to be related to bash.exe).
<code>
<code>
Hi Per. The windows-latest image is not impacted by the changes announced in this blog post. Can you use the Developer Community to describe your problem?
Hi Eric - thanks for the response.
Your pointer to the Dev Community helped me - someone else was running into this as well: https://developercommunity.visualstudio.com/t/Azure-Devops-Pipeline-task-AzureCLI2-ER/10888471?q=windows-latest&sort=newest
and more info here / long-standing issue apparently suddenly appearing after upgrading the AzureCLI@2 to latest version: https://github.com/Azure/azure-cli/issues/31189#issuecomment-2804038068
Fixed it with adding
<code>
<code>
Our builds were failing suddenly, and after closer inspection, .Net 9.0 has been removed from Ubuntu-Latest as the default tool installed. Was there a notice for this?
To configure a default .NET version, use the UseDotNet@2 task and/or global.json.