ci: Update GitHub Actions runner to Ubuntu 24.04 due to timeout reports on 22.04
What changed, and why it matters
This commit only updates the version of Ubuntu used by automated GitHub test runners from 22.04 to 24.04. It also adjusts a couple of package names to match what Ubuntu 24.04 calls them. There is no change to the Core Lightning software itself, its network code, wallet handling, or cryptography. It is purely a testing infrastructure maintenance patch.
No security action needed. Treat as routine CI maintenance.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff modifies .github/workflows/ci.yaml to switch every GitHub Actions runs-on label from ubuntu-22.04 to ubuntu-24.04, and updates the downloaded pre-built release asset used in the downgrade test to the Ubuntu 24.04 variant. The setup script .github/scripts/setup.sh replaces the transitional qemu package with qemu-system, adds pkg-config, and removes python-pkg-resources (a Python 2-era package no longer present in 24.04). These are dependency/package-name adjustments required by the newer Ubuntu image. No application source code is touched.
Changed components
GitHub Actions CI workflow definitionCI setup script package listInspect captured patch +15 / −15
diff --git a/.github/scripts/setup.sh b/.github/scripts/setup.sh
index 1e074763..2409cdf0 100755
--- a/.github/scripts/setup.sh
+++ b/.github/scripts/setup.sh
@@ -33,18 +33,18 @@ sudo apt-get -qq install --no-install-recommends --allow-unauthenticated -yy \
libsodium-dev \
libsqlite3-dev \
libssl-dev \
+ pkg-config \
libtool \
libxml2-utils \
locales \
lowdown \
net-tools \
postgresql \
- python-pkg-resources \
python3 \
python3-dev \
python3-pip \
python3-setuptools \
- qemu \
+ qemu-system \
qemu-system-arm \
qemu-user-static \
shellcheck \
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 53d45a71..cc86761a 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -21,7 +21,7 @@ env:
jobs:
prebuild:
name: Pre-build checks
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
timeout-minutes: 30
if: |
github.event.action != 'edited' ||
@@ -107,7 +107,7 @@ jobs:
compile:
name: Compile CLN ${{ matrix.cfg }}
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
timeout-minutes: 30
needs:
- prebuild
@@ -174,7 +174,7 @@ jobs:
# The unit test checks are not in the critical path (not dependent
# on the integration tests), so run them with `valgrind`
name: Run unit tests
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
timeout-minutes: 60
env:
BOLTDIR: bolts
@@ -219,7 +219,7 @@ jobs:
check-fuzz:
name: Run fuzz regression tests
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
needs:
- prebuild
steps:
@@ -245,7 +245,7 @@ jobs:
check-downgrade:
name: Check we can downgrade the node
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
needs:
- compile
strategy:
@@ -298,8 +298,8 @@ jobs:
run: |
mkdir /tmp/old-cln
cd /tmp/old-cln
- wget https://github.com/ElementsProject/lightning/releases/download/v25.09/clightning-v25.09-Ubuntu-22.04-amd64.tar.xz
- tar -xaf clightning-v25.09-Ubuntu-22.04-amd64.tar.xz
+ wget https://github.com/ElementsProject/lightning/releases/download/v25.09/clightning-v25.09-ubuntu-24.04-amd64.tar.xz
+ tar -xaf clightning-v25.09-ubuntu-24.04-amd64.tar.xz
- name: Switch network
if: ${{ matrix.TEST_NETWORK == 'liquid-regtest' }}
@@ -333,7 +333,7 @@ jobs:
integration:
name: Test CLN ${{ matrix.name }}
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
timeout-minutes: 120
env:
RUST_PROFILE: release # Has to match the one in the compile step
@@ -448,7 +448,7 @@ jobs:
integration-valgrind:
name: Valgrind Test CLN ${{ matrix.name }}
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
timeout-minutes: 120
env:
RUST_PROFILE: release # Has to match the one in the compile step
@@ -535,7 +535,7 @@ jobs:
integration-sanitizers:
name: Sanitizers Test CLN
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
timeout-minutes: 120
env:
RUST_PROFILE: release
@@ -625,7 +625,7 @@ jobs:
update-docs-examples:
name: Update examples in doc schemas (disabled temporarily!)
if: false
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
timeout-minutes: 30
strategy:
fail-fast: false
@@ -674,7 +674,7 @@ jobs:
min-btc-support:
name: Test minimum supported BTC v${{ matrix.MIN_BTC_VERSION }} with ${{ matrix.NAME }}
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
timeout-minutes: 120
env:
RUST_PROFILE: release # Has to match the one in the compile step
@@ -759,7 +759,7 @@ jobs:
# signals successful completion. Used for the PR status to pass
# before merging. Needs to run even if they failed!
name: CI completion
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-24.04
needs:
- integration
- check-units
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.