From 60b2ba998105e612f02755abc5434c38f10c470a Mon Sep 17 00:00:00 2001 From: Felix Hanau Date: Wed, 18 Dec 2024 12:08:12 -0500 Subject: [PATCH] [ci] Build Linux release binaries on Ubuntu 22.04 Mainline support for Ubuntu 20.04 ended in September and it is deprecated on GitHub actions starting February 2025. Accordingly, we should build on 22.04 instead, meaning that the two latest LTS releases will continue to be supported. Since 22.04 uses glibc 2.35, the new release will no longer work on systems using a lower glibc version, including Debian Bullseye (mainline support ended in August). Update README.md to reflect this. --- .github/workflows/_bazel.yml | 2 +- .github/workflows/npm-types.yml | 2 +- .github/workflows/npm.yml | 2 +- .github/workflows/release-python-runtime.yml | 2 +- .github/workflows/release.yml | 6 +++--- .github/workflows/test.yml | 4 ++-- .github/workflows/type-snapshot.yml | 2 +- README.md | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/_bazel.yml b/.github/workflows/_bazel.yml index bd722455ca1..869ef5a5db6 100644 --- a/.github/workflows/_bazel.yml +++ b/.github/workflows/_bazel.yml @@ -5,7 +5,7 @@ on: image: type: string required: false - default: "ubuntu-20.04" + default: "ubuntu-22.04" os_name: type: string required: false diff --git a/.github/workflows/npm-types.yml b/.github/workflows/npm-types.yml index 66fb622622a..1f5b37bf0d9 100644 --- a/.github/workflows/npm-types.yml +++ b/.github/workflows/npm-types.yml @@ -30,7 +30,7 @@ jobs: echo "version=${{ inputs.prerelease == false && '4' || '0'}}.$(cat src/workerd/io/supported-compatibility-date.txt | tr -d '-').${{ inputs.patch }}" >> $GITHUB_OUTPUT; echo "release_version=1.$(cat src/workerd/io/supported-compatibility-date.txt | tr -d '-').0" >> $GITHUB_OUTPUT; build-and-publish-types: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 needs: version steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/npm.yml b/.github/workflows/npm.yml index 79c72a6f527..58152157451 100644 --- a/.github/workflows/npm.yml +++ b/.github/workflows/npm.yml @@ -75,7 +75,7 @@ jobs: # if: github.repository_owner == 'cloudflare' name: Publish `workerd` to NPM needs: [version, publish-arch-specific] - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout Repo uses: actions/checkout@v4 diff --git a/.github/workflows/release-python-runtime.yml b/.github/workflows/release-python-runtime.yml index 41c0df8b6d5..9d75513c945 100644 --- a/.github/workflows/release-python-runtime.yml +++ b/.github/workflows/release-python-runtime.yml @@ -12,7 +12,7 @@ on: jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 name: build Python runtime steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b064926f102..2ac439c4fc5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,7 @@ jobs: outputs: version: ${{ steps.echo.outputs.version }} # version job uses ubuntu 24.04, this way we don't have to install the updated clang while - # the build job uses 20.04 for libc compatibility. + # the build job uses 22.04 for libc compatibility. runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 @@ -56,11 +56,11 @@ jobs: build: strategy: matrix: - os: [ubuntu-20.04, macos-15, windows-2025] + os: [ubuntu-22.04, macos-15, windows-2025] target-arch: [ X64 ] include: - os-name: linux - os: ubuntu-20.04 + os: ubuntu-22.04 bazel-config: release_linux # Based on runner availability, we build both Apple Silicon and (cross-compiled) x86 # release binaries on the macos-15 runner. diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c85d8af1894..e078229a6d3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,7 +28,7 @@ jobs: matrix: os: [ - { name : linux, image : ubuntu-20.04 }, + { name : linux, image : ubuntu-22.04 }, { name : macOS, image : macos-15 }, { name : windows, image : windows-2025 } ] @@ -41,7 +41,7 @@ jobs: ] include: # Add an Address Sanitizer (ASAN) build on Linux for additional checking. - - os: { name: linux, image: ubuntu-20.04 } + - os: { name: linux, image: ubuntu-22.04 } config: { suffix: -asan } # Windows has a custom non-debug bazel config. - os: { name : windows, image : windows-2025 } diff --git a/.github/workflows/type-snapshot.yml b/.github/workflows/type-snapshot.yml index b3da29e0c56..2f45fc9aa44 100644 --- a/.github/workflows/type-snapshot.yml +++ b/.github/workflows/type-snapshot.yml @@ -17,7 +17,7 @@ concurrency: jobs: check-snapshot: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: diff --git a/README.md b/README.md index 606af88ba62..fb2b7d5d08c 100644 --- a/README.md +++ b/README.md @@ -178,7 +178,7 @@ For more details about command-line usage, use `workerd --help`. Prebuilt binaries are distributed via `npm`. Run `npx workerd ...` to use these. If you're running a prebuilt binary, you'll need to make sure your system has the right dependencies installed: * On Linux: - * glibc 2.31 or higher (already included on e.g. Ubuntu 20.04, Debian Bullseye) + * glibc 2.35 or higher (already included on e.g. Ubuntu 22.04, Debian Bookworm) * On macOS: * macOS 13.5 or higher * The Xcode command line tools, which can be installed with `xcode-select --install`