Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ubuntu-latest workflows will use Ubuntu-24.04 image #10636

Open
2 tasks done
ijunaidm opened this issue Sep 17, 2024 · 122 comments
Open
2 tasks done

Ubuntu-latest workflows will use Ubuntu-24.04 image #10636

ijunaidm opened this issue Sep 17, 2024 · 122 comments

Comments

@ijunaidm
Copy link
Contributor

ijunaidm commented Sep 17, 2024

Rollout will begin on December 5th and will complete on January 17th, 2025.

Breaking changes
Ubuntu 24.04 is ready to be the default version for the "ubuntu-latest" label in GitHub Actions and Azure DevOps.

Target date
This change will be rolled out over a period of several weeks beginning December 5th and will complete on January 17th, 2025.

The motivation for the changes
GitHub Actions and Azure DevOps have supported Ubuntu 24.04 in preview mode since May 2024, and starting from July 2024 Ubuntu 24.04 is generally available for all customers. We have monitored customer feedback to improve the Ubuntu 24.04 image stability and now we are ready to set it as the latest. There are a set of packages listed below that we have removed from the Ubuntu 24 image. Please review the list carefully to see if you will be impacted by these changes. We have made cuts to the list of packages so that we can maintain our SLA for free disk space. The images have grown so large we are in danger of violating our SLA if we keep the package list as-is.

The factors we took into consideration when removing packages are as follows:

  • How long does it take to install the tool at runtime?
  • How much space does it take up on the image?
  • How many users are there of the tool?

We understand that our reasoning may not make sense to some of you out there, but please bear in mind that we tried to keep disruptions as minimal as possible, and tried to keep the best interests of the community at large in mind. There is a very large and diverse community using our images, and as much as we would like to, we cannot pre-install every tool on these images.

Platforms affected

  • Azure DevOps
  • GitHub Actions

Mitigation ways
Steps or options for impact mitigation
If you see any issues with your workflows during transition period:

  • Switch back to Ubuntu 22 by changing workflow YAML to use runs-on: ubuntu-22.04 We support two latest LTS Ubuntu versions, so Ubuntu 22 will still be maintained for the next 2 years.
  • File an issue in this repository

Software Differences
The Ubuntu 22.04 image has a different set of software than Ubuntu 24.04. The most significant changes are listed in the table below:

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
PHP 8.1.* 8.3.* The most recent version are installed
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.* (cached)
  • 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.21.* (cached)
  • 1.22.* (cached)
  • 1.23.* (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)
We need to update 3.3.5
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.
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.
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.
.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.*
  • 27.* (default)
  • 26.*
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.
@ThibaultLesuisse
Copy link

ThibaultLesuisse commented Sep 17, 2024

Nuget and sqlpackage not being available is a major showstopper for us.

The more I look at this list the more I realize that 24.04 is a step back for a lot of people. People are going to complain when this becomes the ubuntu-latest. Be aware of this and maybe make sure this communication is shown on github/azure devops

But thanks for the heads up!

@MikeMcC399
Copy link

MikeMcC399 commented Sep 19, 2024

@ijunaidm

ubuntu-24.04 is still labeled beta in the overview on https://github.com/actions/runner-images/blob/main/README.md#available-images

image

Will you now be removing the beta tag?

@ijunaidm
Copy link
Contributor Author

ijunaidm commented Sep 19, 2024

Yes @MikeMcC399 . Its updated and removed.

@zivkan
Copy link

zivkan commented Sep 25, 2024

@ThibaultLesuisse are you aware that NuGet refers specifically to NuGet.exe (which requires mono on Mac & Linux), as does Azure Pipeline's NuGetCommand, and GitHub Actions' nuget/setup-nuget action?

If you're building your projects with dotnet build, you're much better off restoring with dotnet restore, and not using NuGet.exe or mono at all.

@ThibaultLesuisse
Copy link

But we need NuGet.exe to sync our custom Artifacts store. And yes I know that commonly you need to run mono nuget.exe to run it on Mac/Linux. But it doesn't change the fact that a lot of tools are now missing for various reasons. This should be communicated.

@PathogenDavid
Copy link

We're also affected by the removal of Mono.

The official Mono repo only lists 20.04, but the package seem to work fine in newer versions–which is how the 22.04 image got Mono:

# There are no packages for Ubuntu 22 in the repo, but developers confirmed that packages from Ubuntu 20 should work
if is_ubuntu22; then
os_label="focal"
fi

Is there a reason this can't be done for 24.04 as well? I tested it briefly and it's working for our relatively simple needs.

Mono is fairly chunky so we'd rather not install it every single workflow run.

dongjoon-hyun pushed a commit to apache/spark that referenced this issue Sep 26, 2024
…o `ubuntu-latest`

### What changes were proposed in this pull request?
The pr aims to align the running OS image of `maven_test.yml` to `ubuntu-latest` (from `ubuntu-22.04` to `ubuntu-24.04`)

### Why are the changes needed?
https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20240922.1
<img width="627" alt="image" src="https://github.com/user-attachments/assets/f42fd7ed-c52a-4b39-9a92-02657c53d734">
After actions/runner-images#10636, `ubuntu-latest` has already pointed to `ubuntu-24.04` instead of `ubuntu-22.04`.
<img width="811" alt="image" src="https://github.com/user-attachments/assets/adf6b3a8-5ca5-4daa-b35d-ea1386fa07a6">
I have checked all tasks running on `Ubuntu OS` (except for the 2 related to `TPCDS`), and they are all using `ubuntu-latest`. Currently, only `maven_test.yml` is using `ubuntu-22.04`. Let's align it.

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Pass GA.

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes #48263 from panbingkun/SPARK-49797.

Authored-by: panbingkun <panbingkun@baidu.com>
Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
@sayhiben
Copy link

sayhiben commented Sep 26, 2024

Hi there - my team is scrambling this morning due to this change. I have detailed the issue on the community forum here, but the tl;dr is that this version bump prevents Python packages from being installed for system Python. Unfortunately, it seems the evaluation of this issue was incorrect:

On GitHub Actions, actions/setup-python can install any version on-flight so this change doesn't impact users

In fact, my team has a large number of workflows created by many different engineers, and around a dozen of our workflows that didn't previously leverage actions/setup-python now have to go through our internal change management process in order to restore stability to our CI/CD

In the future, please announce breaking changes as a deprecation notice on the GitHub Blog. It's the one place we rely on to proactively catch and prevent stability issues from occurring in our pipelines

@obluff
Copy link

obluff commented Sep 26, 2024

This morning, several of our CI pipelines broke due to these changes. It would be great to have compatibility with the following dependencies, allowing us to upgrade the ubuntu version in the future without complicating our pipelines 🙇 .

  • `gcloud
  • `sbt
  • libncurses.so.5

@Mohammed-Alanazisa
Copy link

Rollout will begin on December 5th and will complete on January 17th, 2025.

Breaking changes Ubuntu 24.04 is ready to be the default version for the "ubuntu-latest" label in GitHub Actions and Azure DevOps.

Target date This change will be rolled out over a period of several weeks beginning December 5th and will complete on January 17th, 2025.

The motivation for the changes GitHub Actions and Azure DevOps have supported Ubuntu 24.04 in preview mode since May 2024, and starting from July 2024 Ubuntu 24.04 is generally available for all customers. We have monitored customer feedback to improve the Ubuntu 24.04 image stability and now we are ready to set it as the latest. There are a set of packages listed below that we have removed from the Ubuntu 24 image. Please review the list carefully to see if you will be impacted by these changes. We have made cuts to the list of packages so that we can maintain our SLA for free disk space. The images have grown so large we are in danger of violating our SLA if we keep the package list as-is.

The factors we took into consideration when removing packages are as follows:

  • How long does it take to install the tool at runtime?
  • How much space does it take up on the image?
  • How many users are there of the tool?

We understand that our reasoning may not make sense to some of you out there, but please bear in mind that we tried to keep disruptions as minimal as possible, and tried to keep the best interests of the community at large in mind. There is a very large and diverse community using our images, and as much as we would like to, we cannot pre-install every tool on these images.

Platforms affected

  • Azure DevOps
  • GitHub Actions

Mitigation ways Steps or options for impact mitigation If you see any issues with your workflows during transition period:

  • Switch back to Ubuntu 22 by changing workflow YAML to use runs-on: ubuntu-22.04 We support two latest LTS Ubuntu versions, so Ubuntu 22 will still be maintained for the next 2 years.
  • File an issue in this repository

Software Differences The Ubuntu 22.04 image has a different set of software than Ubuntu 24.04. The most significant changes are listed in the table below:

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
PHP 8.1.* 8.3.* The most recent version are installed
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.* (cached)

  • 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.21.* (cached)

  • 1.22.* (cached)

  • 1.23.* (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)

We need to update 3.3.5
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.
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.
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.
.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.*

  • 27.* (default)

  • 26.*

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.

@Furka-090
Copy link

  • [ düğüm:22 ]

@fochoao-alt
Copy link

fochoao-alt commented Dec 26, 2024

tags:

  • 'v[0-9]+.[0-9]+'
  • 'v[0-9]+.[0-9]+.[0-9]+'

In the respective workflow.

@GIgako19929
Copy link

``

tiffanycmeyer13 added a commit to tiffanycmeyer13/awips2 that referenced this issue Dec 26, 2024
The yml file runs on ubuntu-latest which in Dec 2024 was the ubuntu-24.04 image which had to remove a number of default packages because the image was getting to large, which included SVN (subversion), so now we need to install this package before we can use it.

actions/runner-images#10636
arch1t3cht added a commit to TypesettingTools/Aegisub that referenced this issue Dec 26, 2024
Ubuntu 22 uses gcc 11 which breaks agi::fs::path due to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95048

To still have a CI that tests gcc, also add Ubuntu 24.

ubuntu-latest currently still uses Ubuntu 22, but will switch to 24
soon: actions/runner-images#10636
arch1t3cht added a commit to TypesettingTools/Aegisub that referenced this issue Dec 26, 2024
Ubuntu 22 uses gcc 11 which breaks agi::fs::path due to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95048

To still have a CI that tests gcc, also add Ubuntu 24.

ubuntu-latest currently still uses Ubuntu 22, but will switch to 24
soon: actions/runner-images#10636
arch1t3cht added a commit to TypesettingTools/Aegisub that referenced this issue Dec 26, 2024
Ubuntu 22 uses gcc 11 which breaks agi::fs::path due to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95048

To still have a CI that tests gcc, also add Ubuntu 24.

ubuntu-latest currently still uses Ubuntu 22, but will switch to 24
soon: actions/runner-images#10636
@fochoao-alt
Copy link

Sounds about right.

a-gavin added a commit to a-gavin/lanforge-scripts that referenced this issue Dec 26, 2024
Addresses recent change of 'ubuntu-latest' runner
bumped to Ubuntu 24.04 LTS. More details here:
actions/runner-images#10636

This fixes Python 3.7 issue in linting action.

Signed-off-by: Alex Gavin <a_gavin@icloud.com>
smileyrekiere pushed a commit to greearb/lanforge-scripts that referenced this issue Dec 26, 2024
Addresses recent change of 'ubuntu-latest' runner
bumped to Ubuntu 24.04 LTS. More details here:
actions/runner-images#10636

This fixes Python 3.7 issue in linting action.

Signed-off-by: Alex Gavin <a_gavin@icloud.com>
trueNAHO added a commit to trueNAHO/nixpkgs that referenced this issue Dec 27, 2024
Lock the Ubuntu runner to ubuntu-22.04 to avoid accidental updates [1]
and increase reproducibility.

[1]: actions/runner-images#10636
trueNAHO added a commit to trueNAHO/nixpkgs that referenced this issue Dec 27, 2024
trueNAHO added a commit to trueNAHO/nixpkgs that referenced this issue Dec 27, 2024
Lock the Ubuntu runner to ubuntu-22.04 to avoid accidental updates [1]
and increase reproducibility.

[1]: actions/runner-images#10636
trueNAHO added a commit to trueNAHO/nixpkgs that referenced this issue Dec 27, 2024
trueNAHO added a commit to trueNAHO/nix that referenced this issue Dec 27, 2024
Lock the Ubuntu runner to ubuntu-22.04 to avoid accidental updates [1]
and increase reproducibility.

[1]: actions/runner-images#10636
trueNAHO added a commit to trueNAHO/nix that referenced this issue Dec 27, 2024
trueNAHO added a commit to trueNAHO/nix that referenced this issue Dec 27, 2024
Lock the Ubuntu runner to ubuntu-22.04 to avoid accidental updates [1]
and increase reproducibility.

[1]: actions/runner-images#10636
trueNAHO added a commit to trueNAHO/nix that referenced this issue Dec 27, 2024
alexanderilyin added a commit to partcad/partcad that referenced this issue Dec 27, 2024
"ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see actions/runner-images#10636"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.