Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/multiarch-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
jobs:
multiarch-build:
name: Build images
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Runner bump to ubuntu-24.04: verify availability and GA status for your org

ubuntu-24.04 runners have been rolling out; ensure it’s GA for your repo/org and not restricted. Also confirm your buildah/qemu steps behave the same under 24.04.

Run this web check to confirm GA status:


🌐 Web query:

Is `ubuntu-24.04` available as a supported GitHub Actions runner label for general availability (not preview), and are there any breaking changes compared to `ubuntu-22.04` that affect common build tools like buildah or qemu?

💡 Result:

ubuntu-24.04 is now generally available as a supported runner label for GitHub Actions, and all users can use it for workflows by specifying runs-on: ubuntu-24.04. This release introduces several changes compared to ubuntu-22.04, notably a significantly trimmed pre-installed package list, which can lead to breaking changes for common build tools such as buildah and qemu[1][3][5].

Essential context and details

  • General Availability:
    The ubuntu-24.04 runner image is out of preview and generally available. You can specify it directly in your workflow:

    jobs:
      build:
        runs-on: ubuntu-24.04

    This is officially supported by GitHub and the label is not a preview[1][5].

  • Migration of ubuntu-latest:
    GitHub is actively migrating the ubuntu-latest label from Ubuntu 22.04 to 24.04 throughout Fall 2024. This means any workflows using ubuntu-latest will soon default to ubuntu-24.04, potentially exposing breakages if workflows depend on outdated assumptions[1][3].

Breaking Changes Affecting Build Tools

  • Reduced Pre-Installed Packages:
    A critical change is that the Ubuntu 24.04 runners have a “significantly trimmed” pre-installed package list compared to Ubuntu 22.04. Many tools that were previously present by default may now need to be installed explicitly in your workflow—a shift from previous best practice[3].

  • Docker/QEMU/Buildah Specific Issues:
    There are confirmed reports of Docker, Buildah, and QEMU-related jobs failing on GitHub-hosted Ubuntu 24.04 runners, particularly for cross-architecture builds (e.g., using QEMU or Docker Buildx for ARM64 targets on x86_64 hosts).

    • Community members note builds that work fine on self-hosted or regular Ubuntu 24.04 VMs but fail on GitHub’s hosted runners[7].
    • The main causes appear to be changes in base runner setup, certain missing dependencies, or altered defaults.

    Workarounds currently suggested:

    • Use runs-on: ubuntu-22.04 where issues are encountered
    • Install required packages (like qemu-user-static, buildah, etc.) at the start of your workflow
    • Consider self-hosted runners for reliable Docker/QEMU support[7].
  • Kernel and System-Level Changes:
    The new runner image brings a newer kernel (6.7/6.8), updated GNOME, and system package versions, which can affect compatibility for low-level tools[2][6].

What to do when migrating

  • Audit your workflow for dependencies:
    If your job relies on pre-installed tools (especially container or virtualization tooling), explicitly add installation steps to ensure reproducibility.

  • Check the runner image’s installed software list:
    Review the [official runner image documentation](see: github/actions/runner-images) for the specific package set included with ubuntu-24.04—do not assume parity with ubuntu-22.04[1].

  • Expect and test for breaking changes:

    • Common breakages reported for:
      • QEMU: Cross-compilation or emulation tasks
      • Buildah: Container building workflows
      • Docker/buildx: Multi-arch builds
    • These may fail due to missing packages, altered container runtime defaults, or other environmental changes[7].

Summary of changes and risks

Feature/Tool Ubuntu 22.04 Ubuntu 24.04 (GitHub Actions Runner) Potential Action Needed
Pre-installed tools Many container & emu tools Fewer pre-installed, more minimal Explicit install in workflow
QEMU cross-builds Generally worked Known issues on x86_64 runners Use Ubuntu 22.04 or self-hosted
Buildah, Docker Stable May require manual package installation Add install steps
Default Software Larger default set Significantly trimmed Audit & update workflows

In conclusion:
If you rely on containerization tools or cross-platform emulation (QEMU/Buildah/Docker/buildx), you should test workflows thoroughly on ubuntu-24.04 before switching, and expect to update your workflows to install more dependencies than you previously did. For reliability, ubuntu-22.04 is still available for the time being[1][3][5][7].

Citations:


Runner bump to ubuntu-24.04: confirm GA support and install missing container tools

ubuntu-24.04 runners are now generally available (GA) and will become the default for ubuntu-latest in Fall 2024. However, they include a significantly trimmed package set compared to 22.04, which can break Buildah/QEMU/Docker-based workflows. Please update .github/workflows/multiarch-build.yaml as follows:

• Confirm that runs-on: ubuntu-24.04 is supported in your org (it’s GA for all users).
• Add explicit installation of container/emulation tools before your multi-arch build steps. For example:

jobs:
  build-multiarch:
    runs-on: ubuntu-24.04
    steps:
      - name: Install container/emulation tools
        run: |
          sudo apt-get update
          sudo apt-get install -y qemu-user-static buildah
      # …your existing steps…

• Run your QEMU and Buildah steps on the 24.04 runner to verify they succeed.
• If you encounter failures, either pin back to ubuntu-22.04 or use a self-hosted runner with the required dependencies.

🤖 Prompt for AI Agents
.github/workflows/multiarch-build.yaml around line 15: the runner was changed to
ubuntu-24.04 but 24.04 has a trimmed package set and may lack
container/emulation tooling; update the job to (1) confirm your org supports
runs-on: ubuntu-24.04, (2) add an early step before the multi-arch build that
runs apt-get update and installs required packages (for example qemu-user-static
and buildah, and docker if your workflow needs it), and (3) run/verify the QEMU
and Buildah steps succeed on the 24.04 runner and if they fail either pin back
to ubuntu-22.04 or use a self-hosted runner with the dependencies.

steps:
- uses: actions/checkout@v4
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Security hardening: pin Actions by commit SHA

Pin third-party actions to immutable commit SHAs to mitigate supply-chain risk. Keep a comment with the tag name for readability.

Example (replace with actual SHAs from the action’s releases page):

  • actions/checkout@
  • redhat-actions/buildah-build@
  • redhat-actions/push-to-registry@

Also applies to: 26-26, 35-35


Expand Down
2 changes: 1 addition & 1 deletion Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ FROM docker.io/library/php:8-fpm
RUN apt-get update && apt-get upgrade -y && apt-get autoclean

ADD --chmod=0755 \
https://github.com/mlocati/docker-php-extension-installer/releases/download/2.7.28/install-php-extensions \
https://github.com/mlocati/docker-php-extension-installer/releases/download/2.9.0/install-php-extensions \
/usr/local/bin/

RUN install-php-extensions \
Expand Down