fix(CI): use Ubuntu 22.04 runners for Linux builds#1581
Merged
Conversation
RC release for docker build fix
Ubuntu 24.04 runners (GLIBC 2.39) produce sqlite3 native addons that require GLIBC_2.38, which is unavailable on Ubuntu 22.04 deployment targets (GLIBC 2.35). Pinning to 22.04 runners ensures the compiled node_sqlite3.node is compatible with all non-EOL Ubuntu LTS releases.
npm install downloads prebuilt node_sqlite3.node binaries compiled against GLIBC 2.38+. Force source compilation on Ubuntu runners so the native addon links against the runner's GLIBC (2.35 on ubuntu-22.04).
Explain why Linux runners are pinned to ubuntu-22.04, why sqlite3 is rebuilt from source, and when the runner version can be updated. Also fix stale "Setup Node 20.x" step name.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ubuntu-22.04for x64,ubuntu-22.04-armfor arm64) instead of Ubuntu 24.04GLIBC_2.38 not foundcrash when the.debpackage is installed on Ubuntu 22.04 systemsProblem
The
ubuntu-latest(24.04) andubuntu-24.04-armrunners have GLIBC 2.39. Whennpm installcompiles thesqlite3native addon on these runners, the resultingnode_sqlite3.nodelinks against alibmsymbol introduced in GLIBC 2.38. Deployed to Ubuntu 22.04 (GLIBC 2.35),dlopenfails immediately:Fix
Ubuntu 22.04 runners have GLIBC 2.35, so the compiled native addon will be compatible with all non-EOL Ubuntu LTS releases (20.04+, 22.04+, 24.04+).
Test plan
ubuntu-22.04andubuntu-22.04-armrunners/health).debon an Ubuntu 22.04 arm64 system and verifycadtstarts without GLIBC errorsNote
Low Risk
Low risk CI-only change, but it affects Linux release artifacts and could impact build times or introduce native-build failures if the sqlite3 source build breaks on the pinned runners.
Overview
Updates the
buildworkflow to pin Linux runners toubuntu-22.04/ubuntu-22.04-arm(instead ofubuntu-latest/24.04) to keep generated binaries compatible with Ubuntu 22.04’s GLIBC.Adds a Linux-only step to
npm rebuild sqlite3 --build-from-sourceso the bundlednode_sqlite3.nodeis compiled against the runner’s GLIBC rather than using downloaded prebuilts, and documents the rationale directly in the workflow.Reviewed by Cursor Bugbot for commit d3044c6. Bugbot is set up for automated code reviews on this repo. Configure here.