SashaMIT
b35b848726
ci: fix pypi-publish env/run YAML after input binding
...
Correct indentation and bind remaining version/ref inputs via env.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 17:44:55 +02:00
SashaMIT
a0598a2d81
ci: bind docker/pypi workflow inputs via env before shell
...
Pass platforms-to-build, docker hub owner/version/push-latest, and
dist-location through env: before run: scripts (script-injection class).
Co-authored-by: Cursor <cursoragent@cursor.com>
Changelog-None
2026-08-12 17:44:55 +02:00
daywalker90
cfa9b6f92d
CI: add concurrency restrictions for macos and msrv workflows
...
Quickly force pushing would leave multiple instances of this running
Changelog-None
2026-08-06 20:32:41 +02:00
Lagrang3
1818553e9a
add a test for downgrading askrene datastore
...
Also trigger a db upgrade in the v26.09 so that impressions can be
removed by the downgrade tool.
Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
2026-08-04 18:51:43 -03:00
Níckolas Goline
ae53e8775e
tests: fix test_low_fd_limit failing on RLIM_INFINITY platforms
...
Continuous Integration / First Integration Tests (1/6) (push) Has been cancelled
Continuous Integration / First Integration Tests (2/6) (push) Has been cancelled
Continuous Integration / First Integration Tests (3/6) (push) Has been cancelled
Continuous Integration / First Integration Tests (4/6) (push) Has been cancelled
Continuous Integration / First Integration Tests (5/6) (push) Has been cancelled
Continuous Integration / First Integration Tests (6/6) (push) Has been cancelled
Continuous Integration / Test CLN dual-fund Full Integration (push) Has been cancelled
Continuous Integration / Test CLN liquid Full Integration (push) Has been cancelled
Continuous Integration / Test CLN postgres Full Integration (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (1/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (10/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (11/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (12/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (2/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (3/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (4/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (5/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (6/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (7/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (8/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (9/12) (push) Has been cancelled
Continuous Integration / ASan/UBSan (1/6) (push) Has been cancelled
Continuous Integration / ASan/UBSan (2/6) (push) Has been cancelled
Continuous Integration / ASan/UBSan (3/6) (push) Has been cancelled
Continuous Integration / ASan/UBSan (4/6) (push) Has been cancelled
Continuous Integration / ASan/UBSan (5/6) (push) Has been cancelled
Continuous Integration / ASan/UBSan (6/6) (push) Has been cancelled
Continuous Integration / Update examples in doc schemas (push) Has been cancelled
Continuous Integration / Test minimum supported BTC v25.0 with clang (push) Has been cancelled
Continuous Integration / CI completion (push) Has been cancelled
When RLIMIT_NOFILE hard limit is RLIM_INFINITY (macOS default) or
larger than UINT32_MAX, passing limits[1] and limits[1]+1 directly as
--dev-fd-limit-multiplier (a u32 option) causes lightningd to reject
the argument as out-of-range and exit(1), making both nodes fail to
start with "Unable to find Server started with public key" timeout.
Cap to TEST_CEILING=65536 when the hard limit is RLIM_INFINITY or
exceeds the ceiling, keeping the existing soft==hard halving path for
normal bounded limits.
Also add the test to the macOS CI list, so the platform it was broken
on now covers it.
Changelog-None
2026-07-31 16:20:34 +02:00
daywalker90
39b7f6dfbd
CI: restructure release workflows
...
Continuous Integration / First Integration Tests (2/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (3/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (4/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (5/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (6/6) (push) Blocked by required conditions
Continuous Integration / Test CLN dual-fund Full Integration (push) Blocked by required conditions
Continuous Integration / Test CLN liquid Full Integration (push) Blocked by required conditions
Continuous Integration / Test CLN postgres Full Integration (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (1/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (10/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (11/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (12/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (2/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (3/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (4/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (5/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (6/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (7/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (8/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (9/12) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (1/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (2/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (3/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (4/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (5/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (6/6) (push) Blocked by required conditions
Continuous Integration / Update examples in doc schemas (push) Blocked by required conditions
Continuous Integration / Test minimum supported BTC v25.0 with clang (push) Blocked by required conditions
Continuous Integration / CI completion (push) Blocked by required conditions
Release Rust 🦀 / release_rust (push) Waiting to run
Binaries, docker images, and python packages are now separated into
build and publish flows. First everything gets built and if every build
step succeeds the publish step can continue.
Also fan out the docker build into a matrix to speed up the workflow.
Changelog-None
2026-07-30 13:24:36 +02:00
Ken Sedgwick
ae8dee8a6b
pyln-testing: don't let wait_for_log match its own forwarded announcement
...
Continuous Integration / First Integration Tests (2/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (3/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (4/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (5/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (6/6) (push) Blocked by required conditions
Continuous Integration / Test CLN dual-fund Full Integration (push) Blocked by required conditions
Continuous Integration / Test CLN liquid Full Integration (push) Blocked by required conditions
Continuous Integration / Test CLN postgres Full Integration (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (1/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (10/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (11/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (12/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (2/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (3/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (4/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (5/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (6/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (7/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (8/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (9/12) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (1/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (2/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (3/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (4/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (5/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (6/6) (push) Blocked by required conditions
Continuous Integration / Update examples in doc schemas (push) Blocked by required conditions
Continuous Integration / Test minimum supported BTC v25.0 with clang (push) Blocked by required conditions
Continuous Integration / CI completion (push) Blocked by required conditions
Release Rust 🦀 / release_rust (push) Waiting to run
An inline plugin's Plugin() object lives in the test process, and
Plugin() installs a PluginLogHandler on the root logger so that a
plugin author's logging calls reach lightningd. In the test process
that handler also forwards pyln's own machinery logs into the node's
log whenever the test-side logger emits at DEBUG. In particular
wait_for_logs() announces 'Waiting for [pattern]' with the pattern
embedded verbatim, so the announcement lands in the very log being
scanned and matches itself, silently reducing the wait to a no-op.
That let test_sendpay_notifications_nowaiter race its channel close
against the first payment (both payments then fail and the success
assertion sees an empty list); any literal-pattern wait_for_log on an
inline-plugin node is similarly voided under DEBUG logging.
Attach a filter to the inline plugin's log handler that only forwards
records originating outside the pyln packages, so author logging still
reaches the node log but pyln internals never do.
The new test covers both directions: an author log line is found by
wait_for_log, and a never-logged sentinel genuinely times out (it
matched instantly via the forwarded announcement before this fix).
The node directory embeds the test name, and this test's long name
pushes inline-plugin.sock past the AF_UNIX bind cap on some runs:
Linux's 108 bytes under liquid-regtest's longer network dir, and
Darwin's 104 with even the default path. Teach _inline_plugin() to
fall back to binding through a short symlink alias to the socket's
directory -- the same technique UnixSocket.connect already uses on
Darwin, aliasing the directory rather than the socket since bind
can't traverse a dangling final-component symlink. The socket file
still lands where the shim's cwd-relative connect expects it. The
test runs in the macOS smoke set too, so CI exercises the fallback on
the platform with the tighter cap.
Fixes : #9343
Changelog-None
2026-07-30 09:38:59 +02:00
daywalker90
6a243ef544
CI: set readme branch name to stable
...
Changelog-None
2026-07-22 15:06:02 +02:00
ShahanaFarooqui
4aae26dc39
CI: Add debug and upload artifacts on failure
Continuous Integration / First Integration Tests (4/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (5/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (6/6) (push) Blocked by required conditions
Continuous Integration / Test CLN dual-fund Full Integration (push) Blocked by required conditions
Continuous Integration / Test CLN liquid Full Integration (push) Blocked by required conditions
Continuous Integration / Test CLN postgres Full Integration (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (1/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (10/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (11/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (12/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (2/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (3/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (4/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (5/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (6/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (7/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (8/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (9/12) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (1/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (2/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (3/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (4/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (5/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (6/6) (push) Blocked by required conditions
Continuous Integration / Update examples in doc schemas (push) Blocked by required conditions
Continuous Integration / Test minimum supported BTC v25.0 with clang (push) Blocked by required conditions
Continuous Integration / CI completion (push) Blocked by required conditions
Release Rust 🦀 / release_rust (push) Waiting to run
ReadMe Sync / rdme-docs-sync (push) Has been cancelled
ReadMe RPC Sync / rdme-rpc-sync (push) Has been cancelled
2026-07-13 18:15:06 -07:00
Rusty Russell
e29915c6f8
CI: re-enable docs examples checks.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-07-13 18:15:06 -07:00
daywalker90
608f6952ea
cln-grpc: vendor protoc as a build-dependency
...
our current version of `grpcio-tools` 1.75.1 bundles `protoc` version:
```
uv run python -m grpc_tools.protoc --version
libprotoc 31.1
```
In CI/Dockerfiles we use 29.4 or whatever the OS provides with the
`protobuf-compiler` package, which for the most part is 21.12.
We actually want to somewhat match these versions but we don't have any
control over OS packages' versions.
We can instead bundle `protoc` as a build dependency for `cln-grpc`.
The current version for that bundles 31.1 as well.
This way the versions of `protoc` are more consistent everywhere.
One downside is that arm 32-bit hosts get no bundled protoc for `cln-grpc`
and have to still install `protobuf-compiler` themselves.
Changelog-None
2026-07-13 18:15:24 +02:00
daywalker90
e04d2f93ff
CI: install CLN on macos and run selected pytest tests
...
Continuous Integration / First Integration Tests (1/6) (push) Has been cancelled
Continuous Integration / First Integration Tests (2/6) (push) Has been cancelled
Continuous Integration / First Integration Tests (3/6) (push) Has been cancelled
Continuous Integration / First Integration Tests (4/6) (push) Has been cancelled
Continuous Integration / First Integration Tests (5/6) (push) Has been cancelled
Continuous Integration / First Integration Tests (6/6) (push) Has been cancelled
Continuous Integration / Test CLN dual-fund Full Integration (push) Has been cancelled
Continuous Integration / Test CLN liquid Full Integration (push) Has been cancelled
Continuous Integration / Test CLN postgres Full Integration (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (1/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (10/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (11/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (12/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (2/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (3/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (4/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (5/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (6/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (7/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (8/12) (push) Has been cancelled
Continuous Integration / Valgrind Test CLN (9/12) (push) Has been cancelled
Continuous Integration / ASan/UBSan (1/6) (push) Has been cancelled
Continuous Integration / ASan/UBSan (2/6) (push) Has been cancelled
Continuous Integration / ASan/UBSan (3/6) (push) Has been cancelled
Continuous Integration / ASan/UBSan (4/6) (push) Has been cancelled
Continuous Integration / ASan/UBSan (5/6) (push) Has been cancelled
Continuous Integration / ASan/UBSan (6/6) (push) Has been cancelled
Continuous Integration / Update examples in doc schemas (disabled temporarily!) (push) Has been cancelled
Continuous Integration / Test minimum supported BTC v25.0 with clang (push) Has been cancelled
Continuous Integration / CI completion (push) Has been cancelled
remove the manual node start as it is covered by running pytests
Changelog-None
2026-07-10 18:20:11 +02:00
Níckolas Goline
0da8fa28eb
ci: reduce sanitizer/valgrind worker count to avoid runner OOM
...
The ASan/UBSan and Valgrind shards intermittently have their hosted
runner killed mid-run with "The runner has received a shutdown signal",
surfaced as a mass test cancellation. The VM itself is being
terminated, most likely from memory exhaustion: `-n $(nproc)+1` runs 5
parallel node-clusters and ASan roughly triples RSS, peaking past the
16GB hosted-runner ceiling on heavy shards (deterministic repro at ~10%
on ASan/UBSan 3/6 due to the fixed --test-group-random-seed=42).
Drop these two jobs to `-n $(nproc)` (one fewer worker) to lower peak
memory, and add an `if: failure()` step that dumps OOM-related dmesg and
kernel-log lines so the next failure records the actual cause.
Changelog-None
2026-07-06 16:16:47 +02:00
Dusty Daemon
066056d915
CI: Check generated docs on Mac
...
Continuous Integration / First Integration Tests (2/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (3/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (4/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (5/6) (push) Blocked by required conditions
Continuous Integration / First Integration Tests (6/6) (push) Blocked by required conditions
Continuous Integration / Test CLN dual-fund Full Integration (push) Blocked by required conditions
Continuous Integration / Test CLN liquid Full Integration (push) Blocked by required conditions
Continuous Integration / Test CLN postgres Full Integration (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (1/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (10/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (11/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (12/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (2/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (3/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (4/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (5/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (6/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (7/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (8/12) (push) Blocked by required conditions
Continuous Integration / Valgrind Test CLN (9/12) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (1/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (2/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (3/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (4/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (5/6) (push) Blocked by required conditions
Continuous Integration / ASan/UBSan (6/6) (push) Blocked by required conditions
Continuous Integration / Update examples in doc schemas (disabled temporarily!) (push) Blocked by required conditions
Continuous Integration / Test minimum supported BTC v25.0 with clang (push) Blocked by required conditions
Continuous Integration / CI completion (push) Blocked by required conditions
Release Rust 🦀 / release_rust (push) Waiting to run
Test that the docs generated on Mac match the docs in the commit
Changelog-None
2026-07-02 11:38:38 +02:00
Níckolas Goline
7224436387
Versions: post-release updates for v26.06
...
Co-Authored-By: Madeline <madeline@blockstream.com>
Changelog-None
2026-06-19 09:38:06 +09:30
daywalker90
c779e1650a
CI: change email server port from 587 to 465 for repro errors
...
Changelog-None
2026-06-17 14:13:25 +02:00
Dusty Daemon
aff0619252
CI: Update Mac CI to use gmake
...
`gmake` is kept up to date while `make` is apple’s built in mac that is not updated and very old at this point.
Changelog-None
2026-06-16 13:46:29 +02:00
daywalker90
a0041a6ec7
CI: remove focal and add resolute Ubuntu builds
...
Changelog-None
2026-05-28 08:31:55 +02:00
daywalker90
db4644f0b4
CI: update github actions in preparation of node.js 20 deprecation
...
Changelog-None
2026-05-20 14:02:16 +02:00
Rusty Russell
6150fbcb66
CI: add a 32-bit cross build.
...
This broke the recent docker upload in the release.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-05-05 15:17:25 +10:00
Rusty Russell
aaf36612bb
Versions: update for next version.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-04-30 20:09:31 +09:30
daywalker90
5ab7b94626
CI: add hook and notification schema paths to readme rpc sync
...
Changelog-None
2026-04-27 13:23:53 +02:00
daywalker90
16b2a183d4
CI: remove crate-bump workflow
...
it was not picking up usage and is not working as intended either
Changelog-None
2026-04-24 16:52:09 +02:00
daywalker90
aafd2a8311
CI: add workflow to verify MSRV on any rust file changes
...
Changelog-None
2026-04-24 15:48:06 +02:00
daywalker90
3a17da61c9
splice: Remove experiemental splicing feature
2026-04-09 11:04:42 +09:30
Rusty Russell
d73b756401
CI: Disable flakiness tracking.
...
287abfbd90 "ci: Add a simple plugin to
report test results to our falkiness tracker" slowed our integration
tests to a crawl: out 6-way gcc integration tests should have taken 20
minutes, but were taking 1hr 24 minutes, and some runs were timing out
altogether.
I cannot reach the server, seems it is down. But tracking flakiness
is rarely useful, so I am disabling this.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-28 18:52:19 +10:30
Rusty Russell
303b876954
CI: shorten job names.
...
On the GH action view I can only see "Compile CLN compile-c" which is not enough!
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-28 18:52:19 +10:30
Rusty Russell
acdda01c01
CI: Don't manually install bitcoind again.
...
.github/scripts/setup.sh does this already, *and* it uses the cache now.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-28 18:52:19 +10:30
Rusty Russell
bda519529c
CI: cache the apt packages, protoc and bitcoind/elements downloads.
...
Usually downloading and installing takes 90 seconds. But sometimes it
takes an hour! Use caching for this, to keep it consistent.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-28 18:52:19 +10:30
Rusty Russell
5174512408
CI: Speed up 'min-btc-support' by compiling clang with -O3.
...
It's timing out after 2 hours sometimes: this now make it finish in 53
minutes.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-28 18:52:19 +10:30
Rusty Russell
31ad743e6b
CI: Use -O3 builds for Liquid integration tests.
...
The other integration tests are taking under an hour, and this is
taking 1hr 30m.
The downside is that backtraces are far less clear, but that's why the
main run uses the full debug version.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
c1b2fde731
CI: Use variable to make group counts neater.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
1d351e2939
CI: split gcc+sqlite3 tests into 6 runners.
...
It takes 1h43m, and it's our "basic" integration test. So split 6
ways to get faster results, then if that passes do the other tests
(Postgres, clang, Liquid, splicing, dual-funding).
Now they take about 20 minutes each.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
9b071418cb
CI: Make 12 not 10 valgrind tests, and 6 not 12 sanitizer tests.
...
Given the new timings, this should even things out a little.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
201b68487d
CI: use -O1 optimized builds for sanitizer and valgrind runs.
...
ChatGPT suggested this for sanitizer runs, but valgrind gains a little
too.
Sanitizer before: 74.1-98.9(84.5+/-7.3) minutes
Sanitizer after: 11.6-15.2(13.3+/-1.2) minutes
Valgrind before: 43.3-54.1(46.8+/-3.8) minutes
Valgrind after: 40.9-49.4(43.4+/-2.5) minutes
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Christian Decker
381f94a6a0
ci: Enable sccache compiler cache for Rust and C
...
[ Cherry-picked from another PR, and read the docs which say you have
to set SCCACHE_GHA_ENABLED to get inter-job caching! --RR ]
2026-02-24 11:54:04 +10:30
Rusty Russell
1047c4847e
CI: use more optimized builds sometimes.
...
1. Don't --enable-debugbuild for sanitizer runs (slow) or -O3 compilations.
2. Use -O3 build for splicing and postgres tests runs (speed them a
little), make sure builds without --enable-debugbuild work.
3. Remove clang test run, because we already use that for
minimum-btc-version test: this saves another 2 hour CI job.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
d39ba34095
CI: make downgrade and slow integration tests depend on check-compiled-source step.
...
As pointed out by Alex Myers: we don't want to waste time running the
complex steps if the generated files are not up-to-date.
But we still run the faster "integration" tests (not valgrind or
sanitizer ones), since they often reveal early failures.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
740e35adab
CI: avoid rebuilds on downloads using testpack.tar.gz.
...
We use the same fragment everywhere for consistency, even though some
stages don't actually call make.
The magic is:
CARGO=false CC=devtools/cc-nobuild SUPPRESS_GENERATION=1
Which causes us to fail if we want to rebuild.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
e50ea42096
CI: Don't do release target build, create "small" profile
...
Using RUST_TARGET=release is slower than RUST_TARGET=debug, *but*
the images are much bigger.
On my laptop, but restricted to 4 CPUs. I added a target to build all
the prerequisited but not compress the bzip2:
RUST_TARGET Time to build Size (testpack.tar.bz2)
release 4m49s 133MB
debug 2m34s 343MB
small 2m9s 155MB
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
7baeb8f873
CI: don't use /tmp/old-cln, use a local dir.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
bc51872648
CI: do cargo test --all as part of post-build step
...
No point spending 1m24 seconds for *each* different compiler variant.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
b3978d94ef
CI: Don't explicitly invoke .github/scripts/install-bitcoind.sh
...
It's done by setup.sh, so simply set the env var for that. Don't try
to reinstall valgrind or call `sudo apt-get update -qq` either, since
setup.sh does that too.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
932ba95020
Makefile: don't build the sources in make check-source.
...
check-source-bolt needs devtools, and check-python needs a full build.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
77251ec16b
CI: use nproc + 1 for pytest parallelism..
...
More future proof, better for self-hosted runners.
Example run times before:
4s CI completion
2m 36s Check we can downgrade the node (compile-gcc, sqlite3, liquid-regtest)
2m 52s Check we can downgrade the node (compile-gcc, postgres, regtest)
3m 20s Check we can downgrade the node (compile-gcc, sqlite3, regtest, 1)
3m 20s Check we can downgrade the node (compile-gcc, sqlite3, regtest, 1)
8m 1s Run fuzz regression tests
11m 46s Run unit tests (compile-clang-sanitizers, 0)
12m 59s Compile CLN compile-gcc
13m 42s Compile CLN compile-clang
14m 10s Compile CLN compile-gcc-O3
14m 15s Compile CLN compile-clang-sanitizers
15m 23s Pre-build checks
19m 37s Test CLN dual-fund
26m 49s Run unit tests (compile-gcc, 1)
43m 19s Valgrind Test CLN Valgrind (06/10)
43m 21s Valgrind Test CLN Valgrind (08/10)
43m 40s Valgrind Test CLN Valgrind (05/10)
43m 59s Valgrind Test CLN Valgrind (03/10)
44m 4s Valgrind Test CLN Valgrind (07/10)
47m 28s Valgrind Test CLN Valgrind (09/10)
47m 37s Valgrind Test CLN Valgrind (02/10)
47m 45s Valgrind Test CLN Valgrind (01/10)
52m 51s Valgrind Test CLN Valgrind (04/10)
54m 6s Valgrind Test CLN Valgrind (10/10)
1h 14m 13s Sanitizers Test CLN (ASan/UBSan (03/12), 3, --test-group=3 --test-group-count=12)
1h 14m 6s Sanitizers Test CLN (ASan/UBSan (06/12), 6, --test-group=6 --test-group-count=12)
1h 15m 23s Sanitizers Test CLN (ASan/UBSan (01/12), 1, --test-group=1 --test-group-count=12)
1h 20m 30s Sanitizers Test CLN (ASan/UBSan (08/12), 8, --test-group=8 --test-group-count=12)
1h 22m 35s Sanitizers Test CLN (ASan/UBSan (12/12), 12, --test-group=12 --test-group-count=12)
1h 23m 49s Sanitizers Test CLN (ASan/UBSan (04/12), 4, --test-group=4 --test-group-count=12)
1h 26m 11s Sanitizers Test CLN (ASan/UBSan (07/12), 7, --test-group=7 --test-group-count=12)
1h 28m 44s Sanitizers Test CLN (ASan/UBSan (05/12), 5, --test-group=5 --test-group-count=12)
1h 29m 1s Sanitizers Test CLN (ASan/UBSan (02/12), 2, --test-group=2 --test-group-count=12)
1h 29m 4s Sanitizers Test CLN (ASan/UBSan (11/12), 11, --test-group=11 --test-group-count=12)
1h 31m 36s Sanitizers Test CLN (ASan/UBSan (09/12), 9, --test-group=9 --test-group-count=12)
1h 38m 54s Sanitizers Test CLN (ASan/UBSan (10/12), 10, --test-group=10 --test-group-count=12)
1h 39m 22s Test CLN liquid
1h 52m 23s Test minimum supported BTC v25.0 with clang
1h 52m 28s Test CLN gcc
1h 53m 57s Test CLN splicing
1h 57m 25s Test CLN postgres
1h 59m 25s Test CLN clang
2d 17h 56m 16s TOTAL
Example runtimes afterwards:
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-24 11:54:04 +10:30
Rusty Russell
42bdb2d638
CI: run tests in the wireshark group so we can test packet sizes
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-18 14:13:25 +10:30
Rusty Russell
1b1274df7e
CI: reduce parallelism for pytest.
...
In November 2022 we seemed to increase parallelism from 2 and 3 to 10!
That is a huge load for these CI boxes, and does explain some of our
flakes.
We only run in parallel because some tests sleep, but it's diminishing
returns (GH runners have 4 VCPUs, 16GB RAM).
This reduces it so:
- Normal runs are -n 4
- Valgrind runs are -n 2
- Sanitizer runs are -n 3
If I use my beefy build box (64BG RAM) but reduce it to 4 CPUs:
Time for pytest -n 5:
Time for pytest -n 4:
Time for pytest -n 3:
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-02-09 19:46:22 +10:30
Rusty Russell
ee0175b85f
Makefile: update next and prev versions now we've released.
...
This means:
1. downgrade changes (we no longer fail due to node biases).
2. various deprecations no longer are
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-01-20 19:32:42 +10:30
Christian Decker
eae521b15d
chore: Ensure the logging library does not get upset when output capture is disabled.
...
Changelog-Fixed: Testing infrastructure no longer fails when logging output capture is disabled.
2026-01-20 15:05:07 +10:30
Rusty Russell
51525efda2
ci: don't run shard 2/12 ubsan without parallel.
...
3974806e5a added this:
CI: Try not running group 2/10 UBSAN in parallel.
It's being killed with signal 143, which means docker isn't happy; too much memory consumption?
But since we're now at 12 groups, that probably doesn't apply (it
might not have even before, in the two years since that commit since
so may things have been added). And it caused this shard to take over
2 hours and timed out.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-01-08 22:33:19 +10:30