Ubuntu 24.04 is now available
Breaking changes
Ubuntu 24.04 is now available for all GitHub Actions and Azure DevOps users. You can use the ubuntu 24.04 image label in your YAML to select this image.
GitHub Actions
jobs:
jobName:
runs-on: ubuntu-24.04
Azure DevOps
pool:
name: 'Azure Pipelines'
vmImage: 'ubuntu-24.04'
The image is marked as "beta" for now. It means some software can be unstable on the new platform. Also, there could be queueing issues as the capacity will be balanced only throughout the next weeks. Please report any problems with the new image to this repository.
Platforms affected
- [X] Azure DevOps
- [X] GitHub Actions
Runner images affected
- [ ] Ubuntu 20.04
- [ ] Ubuntu 22.04
- [X] Ubuntu 24.04
- [ ] macOS 11
- [ ] macOS 12
- [ ] macOS 13
- [ ] macOS 13 Arm64
- [ ] macOS 14
- [ ] macOS 14 Arm64
- [ ] Windows Server 2019
- [ ] Windows Server 2022
Software difference between Ubuntu 22 and Ubuntu 24
| Tool name | Ubuntu 22.04 | Ubuntu 24.04 | Notes |
|---|---|---|---|
| Clang |
|
|
The most recent versions are installed |
| GCC / GNU C++ / GNU Fortran |
|
|
The most recent versions are installed |
| Kotlin | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| PHP | 8.1.* | 8.3.* | The most recent version are installed |
| Swift | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Java |
|
|
Default Java switched to 17.* for Ubuntu 24.04 image. |
| Python |
|
|
Pre-cached versions currently unavailable. Default version switched to the latest one. On GitHub Actions, actions/setup-python can install any version on-flight so this change doesn't impact users |
| Go |
|
|
If your use-case requires using any of these versions, consider using tasks to install Go on-flight:
|
| PyPy |
|
|
Deprecated all the versions besides the most recent ones |
| Ruby |
|
|
Pre-cached versions currently unavailable. Default version switched to the latest one. |
| Node.js |
|
|
If your use-case requires using any of these versions, consider using tasks to install Node.js on-flight:
|
| Heroku | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Leiningen | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Mono / MSBuild / NuGet | latest available | - | Software is not available for Ubuntu 24 at the moment. |
| Packer / Terraform | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| R | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| SVN | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Alibaba Cloud CLI | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Google Cloud CLI | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Netlify CLI | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| OpenShift CLI | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| ORAS CLI | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Vercel CLI | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Bindgen / Cbindgen | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Cargo audit/clippy/outdated | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Microsoft Edge | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Microsoft Edge WebDriver | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Mozilla Firefox | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Mozilla Geckodriver | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| .NET Core SDK |
|
|
Please consider using tasks to install any version on-flight:
|
| PostgreSQL | 14.* | 16.* | More recent version are installed |
| MS SQL Server Client Tools | sqlcmd / SqlPackage | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| MarkdownPS Module | latest available | - | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
| Android Command Line Tools | 9.0 | 12.0 | The most recent version are installed |
| Android SDK Build-tools |
|
|
The most recent version are installed |
| Android NDK |
|
|
The most recent version are installed |
| Cached Docker images |
|
- | Removed from the Ubuntu 24.04 image due to maintenance reasons. |
@MikeMcC399 yep, I forgot about it, now done :)
Run java -version java -version chmod +x ./gradlew ./gradlew build fatJar --no-daemon java -jar build/libs/headlong-cli-1.1-SNAPSHOT.jar -version shell: /usr/bin/bash -e {0} env: GRADLE_ACTION_ID: gradle/actions/wrapper-validation JAVA_HOME: /opt/hostedtoolcache/Java_Zulu_jdk/8.0.412-8/x86 JAVA_HOME_8_X86: /opt/hostedtoolcache/Java_Zulu_jdk/8.0.412-8/x86 The futex facility returned an unexpected error code. /home/runner/work/_temp/f9c9c83d-d717-4c5b-9083-6922b5f9175c.sh: line 1: 2720 Aborted (core dumped) java -version Error: Process completed with exit code 134.
convert (imagemagick) is no longer pre-installed.
See run https://github.com/agda/agda/actions/runs/9086817771/job/24973341288?pr=7261#step:7:105
WARNING: Unable to run the image conversion command 'convert'. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command. Traceback: [Errno 2] No such file or directory: 'convert'
@mikhailkoliada Thank you for the release! What is the timeline for updating the ubuntu-latest alias to default to Ubuntu 24.04 instead? (Context: We would like to upgrade to the latest Ubuntu version, however, it will save a lot of churn across many repos of replacing runs-on: ubuntu-latest with runs-on: ubuntu-24.04 if we could instead wait for the default to change.)
@edmorley
In https://github.com/actions/runner-images/issues/9691#issuecomment-2063926929 there was mention of a date in August 2024 for GA. That might coincide with the change you are asking about.
Are the changes marked "Removed from the Ubuntu 24.04 image due to maintenance reasons." final? Is there a particular common reason? Can we somehow vote/plead to revert any of those choices?
I expect a lot of builds with "ubuntu-latest" to break if it hits GA in that form.
@kojoru there will definitely be changes until GA including the software list installation (for instance we are to add firefox & edge, but a bit later), but we do not guarantee we are to address all the requests, everybody is welcome to file new tools addition requests and we'll review them.
@edmorley migrating to lates is a different process that usually takes time, 24.04 will eventually become latest after its GA
@mikhailkoliada Would you like to amend the software difference table in your first post with the information that Podman gets updated from Podman 3.4.4 in the Ubuntu 22.04 image to Podman 4.9.3 in 24.04?
@mikhailkoliada Cannot seem to use the 24.04 image:
@sanderdelfos
I noticed also that ubuntu-24.04 does not yet appear on the Azure Pipelines > Microsoft-hosted agents list.
@MikeMcC399 True, but it is listed in this issue as ready for use and also listed here: https://github.com/actions/runner-images
I noticed Ubuntu2404 was not added as an option to helpers/GenerateResourcesAndImage.ps1. Are you holding off until GA or are there any plans to do that earlier?
Haskell tools (2204, 2404) are not mentioned in the "Software differences" list above.
And, they are older in the 2404 image. Which might be wise; although GHC 9.10 is released, most Haskell software will not build with it for a while yet.
Thanks for these, and for the new image!
Hello,
I want to use ubuntu-24.04 in my release pipelines but I don't see this in the "Agent Specification" drop down. How can I get it ? What is my alternative ? Currently I am able to use 24.04 in my azure-pielines.yml used in build pipelines to build image.
Thank you in advance.
@pmandadkes1207 It seems that Ubuntu 24.04 is not fully deployed on Azure DevOps, @sanderdelfos and I can't even use it on a YAML pipeline (but you can). Let's give it a bit more time :)
Heads up! 📯 📯 📯
Couple updates regarding Ubuntu-24.04 status and updates.
- The release in ADO, to our great regret, is indeed delayed, but this should not drag on for long. Please check the page describing available Microsoft Hosted agents periodically - changes will be reflected there.
- The diff table includes either those packages and programs which versions we control manually, rather than providing the "latest" available version every time, or packages that are the most critical (for example, the default versions for
RubyandPython). The most complete state of the image can be found here. And please keep in mind that the situation will change quite quickly, since the availability of packages at the start of a new image changes most quickly. - We will be happy to investigate every comment and suggestion regarding the content of the new image, although we understand that we will not be able to satisfy every such request.
@f-lawe Sorry for the oversight on my side. I just realized that I was using 'ubuntu-latest' in azure-pipelines.yml which points to 22.04. I am gettig the same error as @sanderdelfos when I explicitly mention 24.04.
Over the day I started to run into an issue in azure devops regarding "azure cli" after this ubuntu latest build, with the task AzureResourceManagerTemplateDeployment@3
Starting: AzureResourceManagerTemplateDeployment
==============================================================================
Task : ARM template deployment
Description : Deploy an Azure Resource Manager (ARM) template to all the deployment scopes
Version : 3.238.0
Author : Microsoft Corporation
Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment
==============================================================================
ARM Service Connection deployment scope - Subscription
Checking if the following resource group exists: **REDACTED**.
Resource group exists: true.
Creating deployment parameters.
##[error]Check out the troubleshooting guide to see if your issue is addressed: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting
##[error]Error: Command failed: az version
/bin/sh: 1: az: not found
Finishing: AzureResourceManagerTemplateDeployment
Is this an expected thing to be after the release? Or an unexpected breaking change?
Hey @iXyles!
ubuntu-24.04 <> ubuntu-latest
Your issue is related to ubuntu22.04.
@erik-bershel Thanks for the notice! I was mixing the numbers up...
Is the additional comment in the PR above enough to get a notice on this, or should I raise a new ticket?
@iXyles you may file a compatibility issue here: https://github.com/microsoft/azure-pipelines-tasks - it's a task owners repository. We won't accept this bug since base functionality of azure cli available. See there:
Massive thanks @erik-bershel for taking the time to verify this, will look into doing that then!
EDIT: Sorry for misstag.. wrote on phone
Would it be possible to have Python 3.8 as a cached version? I could understand not having 3.7, since it's end of life, but 3.8 is maintained until October 2024, so having it in the cache as well could be nice.
wine seems to crash with futex error
The futex facility returned an unexpected error code.
Aborted (core dumped) wine ./mpv.com -v --no-config
It happens also multiple times during apt-get, dpkg configuration, stage.
The futex facility returned an unexpected error code.
Aborted (core dumped)
Hey @erik-bershel. I'm one of the Cabal maintainers (the Haskell build tool included in the runners). The upgrade to GHC 9.10 was premature: nothing in the ecosystem is ready for it yet. Please, roll back to GHC 9.8 or better yet 9.6, which was declared to be a sort of an LTS by the GHC team recently.
Context. Currently, 9.10 is considered a bleeding edge. People can easily get it via ghcup (also included in the runners) but it's a bad default because, as @simonmichael mentions above: most software will fail to build with it. Cabal's own CI had a failure because we relied on the GHC from the runner for our "quick" jobs: they're supposed to run quickly, so we did't want to install any particular GHC and thought the the runner will provide a sensible default (https://github.com/haskell/cabal/pull/10026).
To add to the previous comment: GHC 9.10 works best with cabal 3.12 which has not been released yet.
Hey @ulysses4ever and @andreasabel!
Thank you for bringing it into our attention. Lets discuss it. Currently we have next process based on the previous conversation with @andreasabel :
available_versions=$(ghcup list -t ghc -r | grep -v "prerelease" | awk '{print $2}')
# Install 2 latest Haskell Major.Minor versions
major_minor_versions=$(echo "$available_versions" | cut -d"." -f 1,2 | uniq | tail -n2)
for major_minor_version in $major_minor_versions; do
full_version=$(echo "$available_versions" | grep "$major_minor_version." | tail -n1)
echo "install ghc version $full_version..."
ghcup install ghc $full_version
ghcup set ghc $full_version
done
As I see 9.10 is declared as a latest non-prerelease version in ghcup list -t ghc -r. I think we may exclude latest if you claim that the community will only benefit from it. It's also possible to filter versions to install in a way to get recommended and latest base non-latest non-prerelease versions. Again, if it suits best the community needs. I have some vague memories that such a scheme has possible side effects due to the fact that the recommended and latest versions may be incompatible, but these may be false memories.
cc @mikhailkoliada
Listen to the GHC/Cabal maintainers over me, but :
- +1 for waiting on GHC 9.10
- Using ghcup's Recommended version would sound like a good policy.. except that's currently 9.4.8. Probably for some good reason [probably platform-specific], but many users will find ghcup's recommendation a bit too conservative.
- Count me as one GHC+github actions user who enjoys having 9.8 rather than 9.6 or 9.4.