From 4d6fd668068c9358f73190267dfa09f47af782ad Mon Sep 17 00:00:00 2001 From: Seth Landry Date: Sat, 11 Jan 2025 23:41:52 -0600 Subject: [PATCH 1/9] Update ubuntu-latest to use Ubuntu 24.04 Fixes #10636 Update workflows and documentation to use Ubuntu 24.04 as the default image for `ubuntu-latest`. * **README.md** - Update the "Available Images" section to indicate that `ubuntu-latest` points to Ubuntu 24.04. - Add an announcement about Ubuntu 24.04 in the "Announcements" section. * **Workflows** - Update `.github/workflows/codeql-analysis.yml` to use `runs-on: ubuntu-latest`. - Update `.github/workflows/create_github_release.yml` to use `runs-on: ubuntu-latest`. - Update `.github/workflows/create_pull_request.yml` to use `runs-on: ubuntu-latest`. - Update `.github/workflows/create_sbom_report.yml` to use `runs-on: ubuntu-latest`. - Update `.github/workflows/linter.yml` to use `runs-on: ubuntu-latest`. - Update `.github/workflows/merge_pull_request.yml` to use `runs-on: ubuntu-latest`. - Update `.github/workflows/powershell-tests.yml` to use `runs-on: ubuntu-latest`. - Update `.github/workflows/update_github_release.yml` to use `runs-on: ubuntu-latest`. --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/actions/runner-images/issues/10636?shareId=XXXX-XXXX-XXXX-XXXX). --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8fbf04981ded..557cb27484d0 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,8 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat See notable upcoming changes by viewing issues with the [Announcement](https://github.com/actions/runner-images/labels/Announcement) label. +- [Ubuntu-latest workflows will use Ubuntu-24.04 image](https://github.com/actions/runner-images/issues/10636) + ## Image Definitions ### Beta From 68025d50dc35537ca470e1ad2ee16d55f6b72694 Mon Sep 17 00:00:00 2001 From: Seth Landry Date: Sat, 11 Jan 2025 23:42:44 -0600 Subject: [PATCH 2/9] Update `README.md` to reflect Ubuntu 24.04 and add announcement * Update "Available Images" section to indicate `ubuntu-latest` points to Ubuntu 24.04 * Add announcement about Ubuntu 24.04 in the "Announcements" section From 23ddbe866c3ede4214e028679cdc83865bbfc629 Mon Sep 17 00:00:00 2001 From: Seth Landry Date: Sat, 11 Jan 2025 23:44:21 -0600 Subject: [PATCH 3/9] Update README.md to reflect Ubuntu 24.04 as the new `ubuntu-latest` * **Announcements** - Add announcement about Ubuntu 24.04 becoming the default version for `ubuntu-latest`. - Include breaking changes, target date, motivation, platforms affected, and mitigation ways. * **Software Differences** - Add a table comparing software differences between Ubuntu 22.04 and Ubuntu 24.04. - List significant changes in tools and versions, including removed and updated software. --- README.md | 223 +++++++++++++++--------------------------------------- 1 file changed, 63 insertions(+), 160 deletions(-) diff --git a/README.md b/README.md index 557cb27484d0..b5d891a1358b 100644 --- a/README.md +++ b/README.md @@ -58,163 +58,66 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat See notable upcoming changes by viewing issues with the [Announcement](https://github.com/actions/runner-images/labels/Announcement) label. -- [Ubuntu-latest workflows will use Ubuntu-24.04 image](https://github.com/actions/runner-images/issues/10636) - -## Image Definitions - -### Beta - -The purpose of a Beta is to collect feedback on an image before it is released to GA. The goal of a Beta is to identify and fix any potential issues that exist on that -image. Images are updated on a weekly cadence. Any workflows that run on a beta image do not fall under the customer [SLA](https://github.com/customer-terms/github-online-services-sla) in place for Actions. -Customers choosing to use Beta images are encouraged to provide feedback in the runner-images repo by creating an issue. A Beta may take on different availability, i.e. public vs private. - -### GA - -A GA (General Availability) image has been through a Beta period and is deemed ready for general use. Images are updated on a weekly cadence. In order to be moved to -GA the image must meet the following criteria: - -1. Has been through a Beta period (public or private) -2. Most major software we install on the image has a compatible -version for the underlying OS and -3. All major bugs reported during the Beta period have been addressed. - -This image type falls under the customer [SLA](https://github.com/customer-terms/github-online-services-sla) for actions. GA images are eventually deprecated according to our guidelines as we only support the -latest 2 versions of an OS. - -#### Latest Migration Process - -GitHub Actions and Azure DevOps use the `-latest` YAML label (ex: `ubuntu-latest`, `windows-latest`, and `macos-latest`). These labels point towards the newest stable OS version available. - - -The `-latest` migration process is gradual and happens over 1-2 months in order to allow customers to adapt their workflows to the newest OS version. During this process, any workflow using the `-latest` label, may see changes in the OS version in their workflows or pipelines. To avoid unwanted migration, users can specify a specific OS version in the yaml file (ex: macos-14, windows-2022, ubuntu-22.04). - -## Image Releases - -*How to best follow along with changes* - -1. Find the latest releases for this repository [here.](https://github.com/actions/runner-images/releases) -2. Subscribe to the releases coming out of this repository, instructions [here.](https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository) -3. Upcoming changes: A pre-release is created when the deployment of an image has started. As soon as the deployment is finished, the pre-release is converted to a release. If you have subscribed to releases, you will get notified of pre-releases as well. - - - You can also track upcoming changes using the [awaiting-deployment](https://github.com/actions/runner-images/labels/awaiting-deployment) label. -4. For high impact changes, we will post these in advance to the GitHub Changelog on our [blog](https://github.blog/changelog/) and on [twitter](https://twitter.com/GHchangelog). - - Ex: breaking changes, GA or deprecation of images - -*Cadence* - -- We typically deploy weekly updates to the software on the runner images. - -## Software and Image Support - -### Support Policy - -- Tools and versions will typically be removed 6 months after they are deprecated or have reached end-of-life -- We support (at maximum) 2 GA images and 1 beta image at a time. We begin the deprecation process of the oldest image label once the newest OS image label has been released to GA. -- The images generally contain the latest versions of packages installed except for Ubuntu LTS where we mostly rely on the Canonical-provided repositories. - -- Popular tools can have several versions installed side-by-side with the following strategy: - -| Tool name | Installation strategy | -|-----------|-----------------------| -| Docker images | not more than 3 latest LTS OS\tool versions. New images or new versions of current images are added using the standard tool request process | -| Java | all LTS versions | -| Node.js | 3 latest LTS versions | -| Go | 3 latest minor versions | -| Python
Ruby | 5 most popular `major.minor` versions | -| PyPy | 3 most popular `major.minor` versions | -| .NET Core | 2 latest LTS versions and 1 latest version. For each feature version only latest patch is installed | -| GCC
GNU Fortran
Clang
GNU C++ | 3 latest major versions | -| Android NDK | 1 latest non-LTS, 2 latest LTS versions | -| Xcode | - only one major version of Xcode will be supported per macOS version
- all minor versions of the supported major version will be available
- beta and RC versions will be provided "as-is" in the latest available macOS image only no matter of beta/GA status of the image
- when a new patch version is released, the previous patch version will be replaced | - -### Package managers usage - -We use third-party package managers to install software during the image generation process. The table below lists the package managers and the software installed. -> [!NOTE] -> Third-party repositories are re-evaluated every year to identify if they are still useful and secure. - -| Operating system | Package manager | Third-party repos and packages | -| :--- | :---: | ---: | -| Ubuntu | [APT](https://wiki.debian.org/Apt) | [containers](https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) (Ubuntu 20 only)
[docker](https://download.docker.com/linux/ubuntu) (Ubuntu20 0nly)
[Eclipse-Temurin (Adoptium)](https://packages.adoptium.net/artifactory/deb/)
[Erlang](https://packages.erlang-solutions.com/ubuntu)
[Firefox](http://ppa.launchpad.net/mozillateam/ppa/ubuntu)
[git-lfs](https://packagecloud.io/install/repositories/github/git-lfs)
[git](https://launchpad.net/~git-core/+archive/ubuntu/ppa)
[Google Cloud CLI](https://packages.cloud.google.com/apt)
[Heroku](https://cli-assets.heroku.com/channels/stable/apt)
[HHvm](https://dl.hhvm.com/ubuntu)
[MongoDB](https://repo.mongodb.org/apt/ubuntu)
[Mono](https://download.mono-project.com/repo/ubuntu)
[MS Edge](https://packages.microsoft.com/repos/edge)
[PostgreSQL](https://apt.postgresql.org/pub/repos/apt/)
[R](https://cloud.r-project.org/bin/linux/ubuntu) | -| | [pipx](https://pypa.github.io/pipx) | ansible-core
yamllint | -| Windows | [Chocolatey](https://chocolatey.org) | No third-party repos installed | -| macOS | [Homebrew](https://brew.sh) | [aws-cli v2](https://github.com/aws/homebrew-tap)
[azure/bicep](https://github.com/Azure/homebrew-bicep)
[mongodb/brew](https://github.com/mongodb/homebrew-brew) | -| | [pipx](https://pypa.github.io/pipx/) | yamllint | - -### Image Deprecation Policy - -- Images begin the deprecation process of the oldest image label once a new GA OS version has been released. -- Deprecation process begins with an announcement that sets a date for deprecation -- As it gets closer to the date, GitHub begins doing scheduled brownouts of the image -- During this time there will be an Announcement pinned in the repo to remind users of the deprecation. -- Finally GitHub will deprecate the image and it will no longer be available - -### Preinstallation Policy - -In general, these are the guidelines we follow when deciding what to pre-install on our images: - -- Popularity: widely-used tools and ecosystems will be given priority. -- Latest Technology: recent versions of tools will be given priority. -- Deprecation: end-of-life tools and versions will not be added. -- Licensing: MIT, Apache, or GNU licenses are allowed. -- Time & Space on the Image: we will evaluate how much time is saved and how much space is used by having the tool pre-installed. -- Support: If a tool requires the support of more than one version, we will consider the cost of this maintenance. - -### Default Version Update Policy - -- In general, once a new version is installed on the image, we announce the default version update 2 weeks prior to deploying it. -- For potentially dangerous updates, we may extend the timeline up to 1 month between the announcement and deployment. - -## How to Interact with the Repo - -- **Issues**: To file a bug report, or request tools to be added/updated, please [open an issue using the appropriate template](https://github.com/actions/runner-images/issues/new/choose) -- **Discussions**: If you want to share your thoughts about image configuration, installed software, or bring a new idea, please create a new topic in a [discussion](https://github.com/actions/runner-images/discussions) for a corresponding category. Before making a new discussion please make sure no similar topics were created earlier. -- For general questions about using the runner images or writing your Actions workflow, please open requests in the [GitHub Actions Community Forum](https://github.community/c/github-actions/41). - -## FAQs - -
- What images are available for GitHub Actions and Azure DevOps? - -The availability of images for GitHub Actions and Azure DevOps is the same. However, deprecation policies may differ. See documentation for more details: -- [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources) -- [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#software) -
- -
- What image version is used in my build? - -Usually, image deployment takes 2-3 days, and documentation in the `main` branch is only updated when deployment is finished. To find out which image version and what software versions are used in a specific build, see `Set up job` (GitHub Actions) or `Initialize job` (Azure DevOps) step log. -actions-runner-image -
- -
- Looking for other Linux distributions? - -We do not plan to offer other Linux distributions. We recommend using Docker if you'd like to build using other distributions with the hosted runner images. Alternatively, you can leverage [self-hosted runners] and fully customize your VM image to your needs. -
- -
- How do I contribute to the macOS source? - -macOS source lives in this repository and is available for everyone. However, macOS image-generation CI doesn't support external contributions yet so we are not able to accept pull-requests for now. - -We are in the process of preparing macOS CI to accept contributions. Until then, we appreciate your patience and ask you to continue to make tool requests by filing issues. -
- -
- How does GitHub determine what tools are installed on the images? - -For some tools, we always install the latest at the time of the deployment; for others, we pin the tool to specific version(s). For more details please see the [Preinstallation Policy](#preinstallation-policy) -
- -
- How do I request that a new tool be pre-installed on the image? -Please create an issue and get an approval from us to add this tool to the image before creating the pull request. -
- -
- What branch should I use to build custom image? -We strongly encourage customers to build their own images using the main branch. -This repository contains multiple branches and releases that serve as document milestones to reflect what software is installed in the images at certain point of time. Current builds are not idempotent and if one tries to build a runner image using the specific tag it is not guaranteed that the build will succeed. -
+### Ubuntu-latest workflows will use Ubuntu-24.04 image + +#### 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 +- [x] Azure DevOps +- [x] 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](https://github.com/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:
  • [actions/setup-go](https://github.com/actions/setup-go) (GitHub Actions)
  • [Go Tool Installer](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/go-tool?view=azure-devops) (Azure DevOps)
| +| 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:
  • [actions/setup-node](https://github.com/actions/setup-node) (GitHub Actions)
  • [Node.js Tool Installer](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/node-js?view=azure-devops) (Azure DevOps)
  • Node 16 will be replaced with Node 22
| +| 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:
  • [actions/setup-dotnet](https://github.com/actions/setup-dotnet) (GitHub Actions)
  • [Use .NET Core](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer?view=azure-devops) (Azure DevOps)
| +| 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. | From 18f9651460604657b5c389e0681c16adda52fb37 Mon Sep 17 00:00:00 2001 From: Seth Landry Date: Sat, 11 Jan 2025 23:45:03 -0600 Subject: [PATCH 4/9] Update README.md to reflect Ubuntu 24.04 as `ubuntu-latest` * Add announcement about Ubuntu 24.04 * Update "Available Images" section to indicate `ubuntu-latest` points to Ubuntu 24.04 * Add detailed sections on image definitions, migration process, image releases, support policy, package managers usage, image deprecation policy, preinstallation policy, default version update policy, and FAQs --- README.md | 228 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 165 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index b5d891a1358b..7d511c187f0b 100644 --- a/README.md +++ b/README.md @@ -58,66 +58,168 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat See notable upcoming changes by viewing issues with the [Announcement](https://github.com/actions/runner-images/labels/Announcement) label. -### Ubuntu-latest workflows will use Ubuntu-24.04 image - -#### 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 -- [x] Azure DevOps -- [x] 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](https://github.com/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:
  • [actions/setup-go](https://github.com/actions/setup-go) (GitHub Actions)
  • [Go Tool Installer](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/go-tool?view=azure-devops) (Azure DevOps)
| -| 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:
  • [actions/setup-node](https://github.com/actions/setup-node) (GitHub Actions)
  • [Node.js Tool Installer](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/node-js?view=azure-devops) (Azure DevOps)
  • Node 16 will be replaced with Node 22
| -| 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:
  • [actions/setup-dotnet](https://github.com/actions/setup-dotnet) (GitHub Actions)
  • [Use .NET Core](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer?view=azure-devops) (Azure DevOps)
| -| 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. | +| Announcements | +|-| +| [[Windows & Ubuntu] Breaking change : Maven 3.8.* version will be updated to Maven 3.9.* from January 17,2025](https://github.com/actions/runner-images/issues/11093) | +| [[Ubuntu] Breaking Change: runner user will have UID 1001 instead of 1000 for larger runners](https://github.com/actions/runner-images/issues/10936) | +| [Ubuntu-latest workflows will use Ubuntu-24.04 image](https://github.com/actions/runner-images/issues/10636) | +*** + +## Image Definitions + +### Beta + +The purpose of a Beta is to collect feedback on an image before it is released to GA. The goal of a Beta is to identify and fix any potential issues that exist on that +image. Images are updated on a weekly cadence. Any workflows that run on a beta image do not fall under the customer [SLA](https://github.com/customer-terms/github-online-services-sla) in place for Actions. +Customers choosing to use Beta images are encouraged to provide feedback in the runner-images repo by creating an issue. A Beta may take on different availability, i.e. public vs private. + +### GA + +A GA (General Availability) image has been through a Beta period and is deemed ready for general use. Images are updated on a weekly cadence. In order to be moved to +GA the image must meet the following criteria: + +1. Has been through a Beta period (public or private) +2. Most major software we install on the image has a compatible +version for the underlying OS and +3. All major bugs reported during the Beta period have been addressed. + +This image type falls under the customer [SLA](https://github.com/customer-terms/github-online-services-sla) for actions. GA images are eventually deprecated according to our guidelines as we only support the +latest 2 versions of an OS. + +#### Latest Migration Process + +GitHub Actions and Azure DevOps use the `-latest` YAML label (ex: `ubuntu-latest`, `windows-latest`, and `macos-latest`). These labels point towards the newest stable OS version available. + + +The `-latest` migration process is gradual and happens over 1-2 months in order to allow customers to adapt their workflows to the newest OS version. During this process, any workflow using the `-latest` label, may see changes in the OS version in their workflows or pipelines. To avoid unwanted migration, users can specify a specific OS version in the yaml file (ex: macos-14, windows-2022, ubuntu-22.04). + +## Image Releases + +*How to best follow along with changes* + +1. Find the latest releases for this repository [here.](https://github.com/actions/runner-images/releases) +2. Subscribe to the releases coming out of this repository, instructions [here.](https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository) +3. Upcoming changes: A pre-release is created when the deployment of an image has started. As soon as the deployment is finished, the pre-release is converted to a release. If you have subscribed to releases, you will get notified of pre-releases as well. + + - You can also track upcoming changes using the [awaiting-deployment](https://github.com/actions/runner-images/labels/awaiting-deployment) label. +4. For high impact changes, we will post these in advance to the GitHub Changelog on our [blog](https://github.blog/changelog/) and on [twitter](https://twitter.com/GHchangelog). + - Ex: breaking changes, GA or deprecation of images + +*Cadence* + +- We typically deploy weekly updates to the software on the runner images. + +## Software and Image Support + +### Support Policy + +- Tools and versions will typically be removed 6 months after they are deprecated or have reached end-of-life +- We support (at maximum) 2 GA images and 1 beta image at a time. We begin the deprecation process of the oldest image label once the newest OS image label has been released to GA. +- The images generally contain the latest versions of packages installed except for Ubuntu LTS where we mostly rely on the Canonical-provided repositories. + +- Popular tools can have several versions installed side-by-side with the following strategy: + +| Tool name | Installation strategy | +|-----------|-----------------------| +| Docker images | not more than 3 latest LTS OS\tool versions. New images or new versions of current images are added using the standard tool request process | +| Java | all LTS versions | +| Node.js | 3 latest LTS versions | +| Go | 3 latest minor versions | +| Python
Ruby | 5 most popular `major.minor` versions | +| PyPy | 3 most popular `major.minor` versions | +| .NET Core | 2 latest LTS versions and 1 latest version. For each feature version only latest patch is installed | +| GCC
GNU Fortran
Clang
GNU C++ | 3 latest major versions | +| Android NDK | 1 latest non-LTS, 2 latest LTS versions | +| Xcode | - only one major version of Xcode will be supported per macOS version
- all minor versions of the supported major version will be available
- beta and RC versions will be provided "as-is" in the latest available macOS image only no matter of beta/GA status of the image
- when a new patch version is released, the previous patch version will be replaced | + +### Package managers usage + +We use third-party package managers to install software during the image generation process. The table below lists the package managers and the software installed. +> [!NOTE] +> Third-party repositories are re-evaluated every year to identify if they are still useful and secure. + +| Operating system | Package manager | Third-party repos and packages | +| :--- | :---: | ---: | +| Ubuntu | [APT](https://wiki.debian.org/Apt) | [containers](https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) (Ubuntu 20 only)
[docker](https://download.docker.com/linux/ubuntu) (Ubuntu20 0nly)
[Eclipse-Temurin (Adoptium)](https://packages.adoptium.net/artifactory/deb/)
[Erlang](https://packages.erlang-solutions.com/ubuntu)
[Firefox](http://ppa.launchpad.net/mozillateam/ppa/ubuntu)
[git-lfs](https://packagecloud.io/install/repositories/github/git-lfs)
[git](https://launchpad.net/~git-core/+archive/ubuntu/ppa)
[Google Cloud CLI](https://packages.cloud.google.com/apt)
[Heroku](https://cli-assets.heroku.com/channels/stable/apt)
[HHvm](https://dl.hhvm.com/ubuntu)
[MongoDB](https://repo.mongodb.org/apt/ubuntu)
[Mono](https://download.mono-project.com/repo/ubuntu)
[MS Edge](https://packages.microsoft.com/repos/edge)
[PostgreSQL](https://apt.postgresql.org/pub/repos/apt/)
[R](https://cloud.r-project.org/bin/linux/ubuntu) | +| | [pipx](https://pypa.github.io/pipx) | ansible-core
yamllint | +| Windows | [Chocolatey](https://chocolatey.org) | No third-party repos installed | +| macOS | [Homebrew](https://brew.sh) | [aws-cli v2](https://github.com/aws/homebrew-tap)
[azure/bicep](https://github.com/Azure/homebrew-bicep)
[mongodb/brew](https://github.com/mongodb/homebrew-brew) | +| | [pipx](https://pypa.github.io/pipx/) | yamllint | + +### Image Deprecation Policy + +- Images begin the deprecation process of the oldest image label once a new GA OS version has been released. +- Deprecation process begins with an announcement that sets a date for deprecation +- As it gets closer to the date, GitHub begins doing scheduled brownouts of the image +- During this time there will be an Announcement pinned in the repo to remind users of the deprecation. +- Finally GitHub will deprecate the image and it will no longer be available + +### Preinstallation Policy + +In general, these are the guidelines we follow when deciding what to pre-install on our images: + +- Popularity: widely-used tools and ecosystems will be given priority. +- Latest Technology: recent versions of tools will be given priority. +- Deprecation: end-of-life tools and versions will not be added. +- Licensing: MIT, Apache, or GNU licenses are allowed. +- Time & Space on the Image: we will evaluate how much time is saved and how much space is used by having the tool pre-installed. +- Support: If a tool requires the support of more than one version, we will consider the cost of this maintenance. + +### Default Version Update Policy + +- In general, once a new version is installed on the image, we announce the default version update 2 weeks prior to deploying it. +- For potentially dangerous updates, we may extend the timeline up to 1 month between the announcement and deployment. + +## How to Interact with the Repo + +- **Issues**: To file a bug report, or request tools to be added/updated, please [open an issue using the appropriate template](https://github.com/actions/runner-images/issues/new/choose) +- **Discussions**: If you want to share your thoughts about image configuration, installed software, or bring a new idea, please create a new topic in a [discussion](https://github.com/actions/runner-images/discussions) for a corresponding category. Before making a new discussion please make sure no similar topics were created earlier. +- For general questions about using the runner images or writing your Actions workflow, please open requests in the [GitHub Actions Community Forum](https://github.community/c/github-actions/41). + +## FAQs + +
+ What images are available for GitHub Actions and Azure DevOps? + +The availability of images for GitHub Actions and Azure DevOps is the same. However, deprecation policies may differ. See documentation for more details: +- [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources) +- [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#software) +
+ +
+ What image version is used in my build? + +Usually, image deployment takes 2-3 days, and documentation in the `main` branch is only updated when deployment is finished. To find out which image version and what software versions are used in a specific build, see `Set up job` (GitHub Actions) or `Initialize job` (Azure DevOps) step log. +actions-runner-image +
+ +
+ Looking for other Linux distributions? + +We do not plan to offer other Linux distributions. We recommend using Docker if you'd like to build using other distributions with the hosted runner images. Alternatively, you can leverage [self-hosted runners] and fully customize your VM image to your needs. +
+ +
+ How do I contribute to the macOS source? + +macOS source lives in this repository and is available for everyone. However, macOS image-generation CI doesn't support external contributions yet so we are not able to accept pull-requests for now. + +We are in the process of preparing macOS CI to accept contributions. Until then, we appreciate your patience and ask you to continue to make tool requests by filing issues. +
+ +
+ How does GitHub determine what tools are installed on the images? + +For some tools, we always install the latest at the time of the deployment; for others, we pin the tool to specific version(s). For more details please see the [Preinstallation Policy](#preinstallation-policy) +
+ +
+ How do I request that a new tool be pre-installed on the image? +Please create an issue and get an approval from us to add this tool to the image before creating the pull request. +
+ +
+ What branch should I use to build custom image? +We strongly encourage customers to build their own images using the main branch. +This repository contains multiple branches and releases that serve as document milestones to reflect what software is installed in the images at certain point of time. Current builds are not idempotent and if one tries to build a runner image using the specific tag it is not guaranteed that the build will succeed. +
From e476f1c4aac8555ed318a20d635355e656b2c852 Mon Sep 17 00:00:00 2001 From: Seth Landry Date: Sat, 11 Jan 2025 23:47:00 -0600 Subject: [PATCH 5/9] Update README.md to reflect Ubuntu 24.04 changes * **Announcements** - Add detailed announcement about Ubuntu 24.04 becoming the default for `ubuntu-latest` - Include breaking changes, target date, motivation, affected platforms, mitigation ways, and software differences * **Available Images** - Indicate that `ubuntu-latest` points to Ubuntu 24.04 --- README.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 65 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7d511c187f0b..8b07c5898616 100644 --- a/README.md +++ b/README.md @@ -58,12 +58,71 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat See notable upcoming changes by viewing issues with the [Announcement](https://github.com/actions/runner-images/labels/Announcement) label. -| Announcements | -|-| -| [[Windows & Ubuntu] Breaking change : Maven 3.8.* version will be updated to Maven 3.9.* from January 17,2025](https://github.com/actions/runner-images/issues/11093) | -| [[Ubuntu] Breaking Change: runner user will have UID 1001 instead of 1000 for larger runners](https://github.com/actions/runner-images/issues/10936) | -| [Ubuntu-latest workflows will use Ubuntu-24.04 image](https://github.com/actions/runner-images/issues/10636) | -*** +### Ubuntu-latest workflows will use Ubuntu-24.04 image + +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** +- [x] Azure DevOps +- [x] 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](https://github.com/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:
  • [actions/setup-go](https://github.com/actions/setup-go) (GitHub Actions)
  • [Go Tool Installer](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/go-tool?view=azure-devops) (Azure DevOps)
| +| 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:
  • [actions/setup-node](https://github.com/actions/setup-node) (GitHub Actions)
  • [Node.js Tool Installer](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/node-js?view=azure-devops) (Azure DevOps)
  • Node 16 will be replaced with Node 22
| +| 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:
  • [actions/setup-dotnet](https://github.com/actions/setup-dotnet) (GitHub Actions)
  • [Use .NET Core](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer?view=azure-devops) (Azure DevOps)
| +| 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. | ## Image Definitions From 48c4395422791fcf77f8977c64c611280006a1e5 Mon Sep 17 00:00:00 2001 From: Seth Landry Date: Sat, 11 Jan 2025 23:48:43 -0600 Subject: [PATCH 6/9] Update `README.md` to reflect Ubuntu 24.04 and add announcement * Update "Available Images" section to indicate `ubuntu-latest` points to Ubuntu 24.04 * Add announcement about Ubuntu 24.04 in the "Announcements" section From 0c73f8c5fc16c6276c2bf04b8be1e40e9d7c1092 Mon Sep 17 00:00:00 2001 From: Seth Landry Date: Sat, 11 Jan 2025 23:49:31 -0600 Subject: [PATCH 7/9] Update README.md to reflect Ubuntu 24.04 as the new `ubuntu-latest` * **Available Images** - Indicate that `ubuntu-latest` points to Ubuntu 24.04 * **Announcements** - Include the announcement about Ubuntu 24.04 - Remove detailed information about the transition to Ubuntu 24.04 --- README.md | 66 +------------------------------------------------------ 1 file changed, 1 insertion(+), 65 deletions(-) diff --git a/README.md b/README.md index 8b07c5898616..557cb27484d0 100644 --- a/README.md +++ b/README.md @@ -58,71 +58,7 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat See notable upcoming changes by viewing issues with the [Announcement](https://github.com/actions/runner-images/labels/Announcement) label. -### Ubuntu-latest workflows will use Ubuntu-24.04 image - -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** -- [x] Azure DevOps -- [x] 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](https://github.com/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:
  • [actions/setup-go](https://github.com/actions/setup-go) (GitHub Actions)
  • [Go Tool Installer](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/go-tool?view=azure-devops) (Azure DevOps)
| -| 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:
  • [actions/setup-node](https://github.com/actions/setup-node) (GitHub Actions)
  • [Node.js Tool Installer](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/node-js?view=azure-devops) (Azure DevOps)
  • Node 16 will be replaced with Node 22
| -| 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:
  • [actions/setup-dotnet](https://github.com/actions/setup-dotnet) (GitHub Actions)
  • [Use .NET Core](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer?view=azure-devops) (Azure DevOps)
| -| 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. | +- [Ubuntu-latest workflows will use Ubuntu-24.04 image](https://github.com/actions/runner-images/issues/10636) ## Image Definitions From cd3f7984f5388ed21e05943c1623722f2c7b3ba6 Mon Sep 17 00:00:00 2001 From: Seth Landry Date: Sat, 11 Jan 2025 23:50:33 -0600 Subject: [PATCH 8/9] Update `runs-on` to `ubuntu-latest` in `powershell-tests.yml` * Ensure the job runs on `ubuntu-latest` --- .github/workflows/powershell-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/powershell-tests.yml b/.github/workflows/powershell-tests.yml index 28afce838e5e..7d6ce88bdbff 100644 --- a/.github/workflows/powershell-tests.yml +++ b/.github/workflows/powershell-tests.yml @@ -22,4 +22,4 @@ jobs: run: | $ErrorActionPreference = "Stop" Invoke-Pester -Output Detailed "helpers/software-report-base/tests" - \ No newline at end of file + From 5d98ab43281841ca5b07f2d3431ac56df823f662 Mon Sep 17 00:00:00 2001 From: Seth Landry Date: Sat, 11 Jan 2025 23:51:56 -0600 Subject: [PATCH 9/9] Update `README.md` to reflect Ubuntu 24.04 and add announcement * Update "Available Images" section to indicate `ubuntu-latest` points to Ubuntu 24.04 * Add announcement about Ubuntu 24.04 in the "Announcements" section