runner-images icon indicating copy to clipboard operation
runner-images copied to clipboard

Ubuntu 24.04 is now available

Open mikhailkoliada opened this issue 1 year ago • 73 comments

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
  • 13.*
  • 14.* (default)
  • 15.*
  • 16.*
  • 17.*
  • 18.* (default)
The most recent versions are installed
GCC / GNU C++ / GNU Fortran
  • 9.*
  • 10.*
  • 11.*
  • 12.*
  • 13.*
  • 12.*
  • 13.*
  • 14.*
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
  • 8.*
  • 11.* (default)
  • 17.*
  • 21.*
  • 8.*
  • 11.*
  • 17.* (default)
  • 21.*
Default Java switched to 17.* for Ubuntu 24.04 image.
Python
  • 3.7.* (cached)
  • 3.8.* (cached)
  • 3.9.* (cached)
  • 3.10.* (default)
  • 3.11.* (cached)
  • 3.12.* (cached)
  • 3.9.* (cached)
  • 3.10.* (default)
  • 3.11.* (cached)
  • 3.12.* (default)
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
  • 1.20.* (cached)
  • 1.21.* (default)
  • 1.22.* (cached)
  • 1.20.* (cached)
  • 1.21.* (cached)
  • 1.22.* (default)
If your use-case requires using any of these versions, consider using tasks to install Go on-flight:
PyPy
  • 3.7.* (cached)
  • 3.8.* (cached)
  • 3.9.* (cached)
  • 3.10.* (cached)
  • 3.9.* (cached)
  • 3.10.* (cached)
Deprecated all the versions besides the most recent ones
Ruby
  • 3.0.* (default)
  • 3.1.* (cached)
  • 3.2.* (default)
Pre-cached versions currently unavailable. Default version switched to the latest one.
Node.js
  • 16.* (cached)
  • 18.* (default)
  • 20.* (cached)
  • 16.* (cached)
  • 18.* (cached)
  • 20.* (default)
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
  • 6.*
  • 7.*
  • 8.*
  • 8.*
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
  • 34.0.0
  • 33.0.0
  • 33.0.1
  • 33.0.2
  • 33.0.3
  • 32.0.0
  • 31.0.0
  • 34.0.0
The most recent version are installed
Android NDK
  • 25.* (default)
  • 26.*
  • 26.* (default)
The most recent version are installed
Cached Docker images
  • alpine:3.16
  • alpine:3.17
  • alpine:3.18
  • debian:10
  • debian:11
  • moby/buildkit:latest
  • node:16
  • node:16-alpine
  • node:18
  • node:18-alpine
  • node:20
  • node:20-alpine
  • ubuntu:20.04
  • ubuntu:22.04
- Removed from the Ubuntu 24.04 image due to maintenance reasons.

mikhailkoliada avatar May 14 '24 16:05 mikhailkoliada

@mikhailkoliada

Thanks very much for the announcement here!

Will you mark it as beta in the README?

image

MikeMcC399 avatar May 14 '24 17:05 MikeMcC399

@MikeMcC399 yep, I forgot about it, now done :)

mikhailkoliada avatar May 14 '24 19:05 mikhailkoliada

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.

esaulpaugh avatar May 14 '24 21:05 esaulpaugh

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'

andreasabel avatar May 14 '24 22:05 andreasabel

@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 avatar May 15 '24 06:05 edmorley

@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.

MikeMcC399 avatar May 15 '24 06:05 MikeMcC399

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 avatar May 15 '24 07:05 kojoru

@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.

mikhailkoliada avatar May 15 '24 10:05 mikhailkoliada

@edmorley migrating to lates is a different process that usually takes time, 24.04 will eventually become latest after its GA

mikhailkoliada avatar May 15 '24 10:05 mikhailkoliada

@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?

adelton avatar May 15 '24 13:05 adelton

@mikhailkoliada Cannot seem to use the 24.04 image: image

sanderdelfos avatar May 16 '24 09:05 sanderdelfos

@sanderdelfos

I noticed also that ubuntu-24.04 does not yet appear on the Azure Pipelines > Microsoft-hosted agents list.

MikeMcC399 avatar May 16 '24 09:05 MikeMcC399

@MikeMcC399 True, but it is listed in this issue as ready for use and also listed here: https://github.com/actions/runner-images

sanderdelfos avatar May 16 '24 09:05 sanderdelfos

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?

dandrestor avatar May 16 '24 10:05 dandrestor

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!

simonmichael avatar May 16 '24 18:05 simonmichael

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 avatar May 16 '24 20:05 pmandadkes1207

@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 :)

f-lawe avatar May 17 '24 08:05 f-lawe

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 Ruby and Python). 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.

erik-bershel avatar May 17 '24 12:05 erik-bershel

@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.

pmandadkes1207 avatar May 17 '24 13:05 pmandadkes1207

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?

iXyles avatar May 17 '24 13:05 iXyles

Hey @iXyles!

ubuntu-24.04 <> ubuntu-latest Your issue is related to ubuntu22.04.

erik-bershel avatar May 17 '24 14:05 erik-bershel

@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 avatar May 17 '24 14:05 iXyles

@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: Screenshot 2024-05-17 at 16 45 09

erik-bershel avatar May 17 '24 14:05 erik-bershel

Massive thanks @erik-bershel for taking the time to verify this, will look into doing that then!

EDIT: Sorry for misstag.. wrote on phone

iXyles avatar May 17 '24 14:05 iXyles

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.

mkniewallner avatar May 17 '24 16:05 mkniewallner

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)

kasper93 avatar May 18 '24 21:05 kasper93

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).

ulysses4ever avatar May 22 '24 14:05 ulysses4ever

To add to the previous comment: GHC 9.10 works best with cabal 3.12 which has not been released yet.

andreasabel avatar May 22 '24 14:05 andreasabel

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

erik-bershel avatar May 22 '24 16:05 erik-bershel

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.

simonmichael avatar May 22 '24 17:05 simonmichael