Radicle repository id rad:zwTxygwuz5LDGBq255RA2CbNGrz8
[2025-09-24T04:52:03Z INFO ambient] ambient starts
deprecated: the `cpus` field is replaced by `qemu.cpus`
deprecated: the `memory` field is replaced by `qemu.memory`
[2J[01;01H[=3h[2J[01;01H[2J[01;01H[=3h[2J[01;01HBdsDxe: failed to load Boot0001 "UEFI QEMU DVD-ROM QM00005 " from PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x2,0xFFFF,0x0): Not Found
BdsDxe: loading Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x2,0x0)
BdsDxe: starting Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x2,0x0)
[0m[30m[47mWelcome to GRUB!
[0m[37m[40m[0m[30m[40m[2J[01;01H[0m[37m[40mINFO: Block devices
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 370K 0 rom
vda 254:0 0 100G 0 disk
├─vda1 254:1 0 953M 0 part
└─vda2 254:2 0 99.1G 0 part /
vdb 254:16 0 6.1M 1 disk
vdc 254:32 0 5.2M 1 disk
vdd 254:48 0 953.7M 0 disk
vde 254:64 0 27.9G 0 disk
vdf 254:80 0 896.3M 1 disk
INFO: Extracting tar archive from /dev/vdb
drwxr-xr-x _rad/_rad 0 2025-09-24 04:48 ./
-rw-r--r-- _rad/_rad 1789 2025-09-24 04:48 ./plan.yaml
-rwxr-xr-x _rad/_rad 6365440 2025-09-24 04:48 ./run-ci
INFO: Extracted files:
6291466 4 drwxr-xr-x 2 1000 1000 4096 Sep 24 04:48 .
6291468 6220 -rwxr-xr-x 1 1000 1000 6365440 Sep 24 04:48 ./run-ci
6291467 4 -rw-r--r-- 1 1000 1000 1789 Sep 24 04:48 ./plan.yaml
INFO: Running run-ci from /dev/vdb
================================ BEGIN ================================
[2025-09-24T04:48:28Z TRACE ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-24T04:48:28Z DEBUG ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-24T04:48:28Z INFO ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-24T04:48:28Z WARN ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-24T04:48:28Z ERROR ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
RunnablePlan::from_file: filename=plan.yaml
steps:
- action: mkdir
pathname: /workspace
- action: mkdir
pathname: /workspace/artifacts
- action: tar_extract
archive: /dev/vdc
directory: /workspace/src
- action: tar_extract
archive: /dev/vdf
directory: /workspace/deps
- action: tar_extract
archive: /dev/vde
directory: /workspace/cache
- action: spawn
argv:
- find
- /workspace
- -maxdepth
- '2'
- -ls
- action: cargo_fmt
- action: cargo_clippy
- action: shell
shell: |
export CARGO_TARGET_DIR=/workspace/cache
export CARGO_HOME=/workspace/deps
export HOME=/root
export PATH="/root/.cargo/bin:/root/.radicle/bin:$PATH"
# Check that `rad` is there.
rad --help >/dev/null || (echo rad is not there; exit 1)
cargo doc --workspace --no-deps
# FIXME: We can't run upgrade tests from older versions because
# Ambient only fetches dependencies for the current version.
# Thus, we can't build the old versions. This is an Ambient
# problem that we can't fix here. So we skip the upgrade tests.
cargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2
subplot docgen ci-broker.subplot -o doc/ci-broker.html
subplot docgen doc/userguide.subplot -o doc/userguide.html
make -C doc
cp doc/*.html /workspace/artifacts/.
- action: custom
name: dch
args:
debfullname: Lars Wirzenius
debemail: liw@liw.fi
- action: deb
- action: tar_create
archive: /dev/vde
directory: /workspace/cache
- action: tar_create
archive: /dev/vdd
directory: /workspace/artifacts
executor_drive: /dev/vdb
source_drive: /dev/vdc
artifact_drive: /dev/vdd
cache_drive: /dev/vde
deps_drive: /dev/vdf
workspace_dir: /workspace
source_dir: /workspace/src
deps_dir: /workspace/deps
cache_dir: /workspace/cache
artifacts_dir: /workspace/artifacts
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action Mkdir {
pathname: "/workspace",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: plan=Mkdir {
pathname: "/workspace",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action Mkdir {
pathname: "/workspace/artifacts",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: plan=Mkdir {
pathname: "/workspace/artifacts",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vdc",
directory: "/workspace/src",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vdc",
directory: "/workspace/src",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
[2025-09-24T04:48:28Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src
[2025-09-24T04:48:28Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vdf",
directory: "/workspace/deps",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vdf",
directory: "/workspace/deps",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
[2025-09-24T04:48:28Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps
[2025-09-24T04:48:30Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-24T04:48:30Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:30Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-24T04:48:30Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-24T04:48:30Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
[2025-09-24T04:48:30Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache
[2025-09-24T04:48:36Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-24T04:48:36Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:36Z DEBUG ambient_ci::plan] RUN: Action Spawn {
argv: [
"find",
"/workspace",
"-maxdepth",
"2",
"-ls",
],
}
[2025-09-24T04:48:36Z DEBUG ambient_ci::action] Plan::execute: plan=Spawn {
argv: [
"find",
"/workspace",
"-maxdepth",
"2",
"-ls",
],
}
[2025-09-24T04:48:36Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
cwd=/workspace/src (exists? true)
2621441 4 drwxr-xr-x 6 root root 4096 Sep 24 04:48 /workspace
2621442 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/artifacts
2649968 4 drwxr-xr-x 6 root root 4096 Sep 20 06:05 /workspace/cache
2654072 4 drwxr-xr-x 12 root root 4096 Sep 23 09:10 /workspace/cache/doc
2654625 4 drwxr-xr-x 7 root root 4096 Sep 23 09:13 /workspace/cache/debug
2649969 4 -rw-r--r-- 1 root root 1038 Sep 24 04:48 /workspace/cache/.rustc_info.json
2649970 4 drwxr-xr-x 7 root root 4096 Sep 23 09:14 /workspace/cache/release
2654623 4 drwxr-xr-x 2 root root 4096 Sep 20 05:52 /workspace/cache/tmp
2654624 4 -rw-r--r-- 1 root root 218 Sep 20 05:56 /workspace/cache/.rustdoc_fingerprint.json
2621696 4 drwxr-xr-x 3 root root 4096 Sep 24 04:48 /workspace/deps
2649967 0 -rw-r--r-- 1 root root 0 Sep 10 13:33 /workspace/deps/.package-cache
2621697 4 drwxr-xr-x 5 root root 4096 Sep 10 13:33 /workspace/deps/registry
2649965 120 -rw-r--r-- 1 root root 122880 Sep 24 04:48 /workspace/deps/.global-cache
2649966 0 -rw-r--r-- 1 root root 0 Sep 10 13:33 /workspace/deps/.package-cache-mutate
2621443 4 drwxr-xr-x 10 root root 4096 Sep 24 04:48 /workspace/src
2621494 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/src/doc
2621518 4 -rw-r--r-- 1 root root 732 Sep 24 04:48 /workspace/src/ci-broker.yaml
2621525 12 -rw-r--r-- 1 root root 9723 Sep 24 04:48 /workspace/src/LICENSE-APACHE
2621444 92 -rw-r--r-- 1 root root 92971 Sep 24 04:48 /workspace/src/ci-broker.md
2621493 8 -rw-r--r-- 1 root root 6528 Sep 24 04:48 /workspace/src/flake.lock
2621522 40 -rw-r--r-- 1 root root 37288 Sep 24 04:48 /workspace/src/NEWS.md
2621516 4 -rw-r--r-- 1 root root 386 Sep 24 04:48 /workspace/src/cibtool.1
2621529 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/src/.radicle
2621536 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/src/.ambient
2621526 4 -rw-r--r-- 1 root root 1716 Sep 24 04:48 /workspace/src/Cargo.toml
2621445 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/src/tests
2621517 4 -rw-r--r-- 1 root root 440 Sep 24 04:48 /workspace/src/cib.1
2621519 4 -rw-r--r-- 1 root root 257 Sep 24 04:48 /workspace/src/ci-broker.subplot
2621528 4 -rw-r--r-- 1 root root 1188 Sep 24 04:48 /workspace/src/CONTRIBUTING.md
2621521 8 -rw-r--r-- 1 root root 4796 Sep 24 04:48 /workspace/src/README.md
2621532 4 -rw-r--r-- 1 root root 10 Sep 24 04:48 /workspace/src/.envrc
2621531 4 -rw-r--r-- 1 root root 44 Sep 24 04:48 /workspace/src/.gitignore
2621492 8 -rw-r--r-- 1 root root 5951 Sep 24 04:48 /workspace/src/flake.nix
2621520 4 -rw-r--r-- 1 root root 802 Sep 24 04:48 /workspace/src/build.rs
2621527 100 -rw-r--r-- 1 root root 98580 Sep 24 04:48 /workspace/src/Cargo.lock
2621504 4 drwxr-xr-x 3 root root 4096 Sep 24 04:48 /workspace/src/debian
2621538 4 drwxr-xr-x 8 root root 4096 Sep 24 04:48 /workspace/src/.git
2621524 4 -rw-r--r-- 1 root root 1079 Sep 24 04:48 /workspace/src/LICENSE-MIT
2621523 4 -rw-r--r-- 1 root root 334 Sep 24 04:48 /workspace/src/Makefile
2621533 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/src/.cargo
2621447 4 drwxr-xr-x 4 root root 4096 Sep 24 04:48 /workspace/src/src
[2025-09-24T04:48:36Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:36Z DEBUG ambient_ci::plan] RUN: Action CargoFmt
[2025-09-24T04:48:36Z DEBUG ambient_ci::action] Plan::execute: plan=CargoFmt
[2025-09-24T04:48:36Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["cargo", "--version"]
cwd=/workspace/src (exists? true)
cargo 1.90.0 (840b83a10 2025-07-30)
SPAWN: argv=["cargo", "clippy", "--version"]
cwd=/workspace/src (exists? true)
clippy 0.1.90 (1159e78c47 2025-09-14)
SPAWN: argv=["rustc", "--version"]
cwd=/workspace/src (exists? true)
rustc 1.90.0 (1159e78c4 2025-09-14)
SPAWN: argv=["cargo", "fmt", "--check"]
cwd=/workspace/src (exists? true)
[2025-09-24T04:48:37Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:37Z DEBUG ambient_ci::plan] RUN: Action CargoClippy
[2025-09-24T04:48:37Z DEBUG ambient_ci::action] Plan::execute: plan=CargoClippy
[2025-09-24T04:48:37Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["cargo", "--version"]
cwd=/workspace/src (exists? true)
cargo 1.90.0 (840b83a10 2025-07-30)
SPAWN: argv=["cargo", "clippy", "--version"]
cwd=/workspace/src (exists? true)
clippy 0.1.90 (1159e78c47 2025-09-14)
SPAWN: argv=["rustc", "--version"]
cwd=/workspace/src (exists? true)
rustc 1.90.0 (1159e78c4 2025-09-14)
SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
cwd=/workspace/src (exists? true)
Compiling radicle-ci-broker v0.20.1 (/workspace/src)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.52s
[2025-09-24T04:48:41Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:41Z DEBUG ambient_ci::plan] RUN: Action Shell {
shell: "export CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:/root/.radicle/bin:$PATH\"\n\n# Check that `rad` is there.\nrad --help >/dev/null || (echo rad is not there; exit 1)\n\ncargo doc --workspace --no-deps\n\n# FIXME: We can't run upgrade tests from older versions because\n# Ambient only fetches dependencies for the current version.\n# Thus, we can't build the old versions. This is an Ambient\n# problem that we can't fix here. So we skip the upgrade tests.\ncargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2\n\nsubplot docgen ci-broker.subplot -o doc/ci-broker.html\nsubplot docgen doc/userguide.subplot -o doc/userguide.html\nmake -C doc\ncp doc/*.html /workspace/artifacts/.\n",
}
[2025-09-24T04:48:41Z DEBUG ambient_ci::action] Plan::execute: plan=Shell {
shell: "export CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:/root/.radicle/bin:$PATH\"\n\n# Check that `rad` is there.\nrad --help >/dev/null || (echo rad is not there; exit 1)\n\ncargo doc --workspace --no-deps\n\n# FIXME: We can't run upgrade tests from older versions because\n# Ambient only fetches dependencies for the current version.\n# Thus, we can't build the old versions. This is an Ambient\n# problem that we can't fix here. So we skip the upgrade tests.\ncargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2\n\nsubplot docgen ci-broker.subplot -o doc/ci-broker.html\nsubplot docgen doc/userguide.subplot -o doc/userguide.html\nmake -C doc\ncp doc/*.html /workspace/artifacts/.\n",
}
[2025-09-24T04:48:41Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["/bin/bash", "-c", "set -xeuo pipefail\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:/root/.radicle/bin:$PATH\"\n\n# Check that `rad` is there.\nrad --help >/dev/null || (echo rad is not there; exit 1)\n\ncargo doc --workspace --no-deps\n\n# FIXME: We can't run upgrade tests from older versions because\n# Ambient only fetches dependencies for the current version.\n# Thus, we can't build the old versions. This is an Ambient\n# problem that we can't fix here. So we skip the upgrade tests.\ncargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2\n\nsubplot docgen ci-broker.subplot -o doc/ci-broker.html\nsubplot docgen doc/userguide.subplot -o doc/userguide.html\nmake -C doc\ncp doc/*.html /workspace/artifacts/.\n\n"]
cwd=/workspace/src (exists? true)
+ export CARGO_TARGET_DIR=/workspace/cache
+ CARGO_TARGET_DIR=/workspace/cache
+ export CARGO_HOME=/workspace/deps
+ CARGO_HOME=/workspace/deps
+ export HOME=/root
+ HOME=/root
+ export PATH=/root/.cargo/bin:/root/.radicle/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ PATH=/root/.cargo/bin:/root/.radicle/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ rad --help
+ cargo doc --workspace --no-deps
Compiling radicle-ci-broker v0.20.1 (/workspace/src)
Documenting radicle-ci-broker v0.20.1 (/workspace/src)
warning: unresolved link to `RunningProcess`
--> src/adapter.rs:357:44
|
357 | /// Error from [`TimeoutCommand`] or [`RunningProcess`].
| ^^^^^^^^^^^^^^ no item named `RunningProcess` in scope
|
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
= note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
warning: unresolved link to `RunningProcess`
--> src/timeoutcmd.rs:74:24
|
74 | /// output. See also [`RunningProcess`].
| ^^^^^^^^^^^^^^ no item named `RunningProcess` in scope
|
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
warning: `radicle-ci-broker` (lib doc) generated 2 warnings
Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.73s
Generated /workspace/cache/doc/radicle_ci_broker/index.html and 4 other files
+ cargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2
Compiling radicle-ci-broker v0.20.1 (/workspace/src)
Finished `test` profile [unoptimized + debuginfo] target(s) in 7.47s
Running unittests src/lib.rs (/workspace/cache/debug/deps/radicle_ci_broker-a1b772b1a7ff0a44)
running 86 tests
test adapter::test::adapter_ends_ok_before_first_message ... ok
test adapter::test::adapter_does_not_exist ... ok
test adapter::test::adapter_exits_nonzero ... ok
test adapter::test::adapter_ends_ok_before_second_message ... ok
test adapter::test::adapter_first_message_isnt_triggered ... ok
test adapter::test::adapter_has_bad_interpreter ... ok
test adapter::test::adapter_is_killed_after_second_message ... ok
test adapter::test::adapter_is_killed_before_any_messages ... ok
test adapter::test::adapter_is_killed_before_first_message ... ok
test adapter::test::adapter_is_not_executable ... ok
test adapter::test::adapter_outputs_too_many_messages ... ok
test adapter::test::adapter_produces_as_bad_message ... ok
test adapter::test::adapter_reports_failure ... ok
test adapter::test::adapter_reports_success ... ok
test broker::test::adapter_fails ... ok
test ci_event::test::branch_created ... ok
test ci_event::test::branch_deleted ... ok
test ci_event::test::branch_updated ... ok
test ci_event::test::nothing_updated ... ok
test ci_event::test::patch_created ... ok
test ci_event::test::patch_updated ... ok
test ci_event::test::skipped ... ok
test broker::test::executes_adapter ... ok
test ci_event::test_parsed_ref::branch ... ok
test ci_event::test_parsed_ref::patch ... ok
test config::test::parse_config_yaml ... ok
test config::test::parse_config_yaml_without_max_run_time ... ok
test filter::test::allows_all_for_default_repository ... ok
test filter::test::allows_all_for_main_branch ... ok
test ci_event::test_parsed_ref::tag ... ok
test filter::test::allows_all_for_right_node ... ok
test filter::test::allows_any_event ... ok
test filter::test::allows_branch_creation ... ok
test filter::test::allows_branch_deletion ... ok
test filter::test::allows_branch_update ... ok
test filter::test::allows_if_all_allow ... ok
test filter::test::allows_if_any_allows ... ok
test filter::test::allows_no_event ... ok
test filter::test::allows_none_for_wrong_node ... ok
test filter::test::allows_opposite ... ok
test filter::test::allows_patch_creation ... ok
test filter::test::allows_patch_update ... ok
test filter::test::allows_shutdown ... ok
test filter::test::allows_specific_patch ... ok
test filter::test::allows_wanted_tag ... ok
test filter::test::deserialize_yaml_nested_not ... ok
test filter::test::doesnt_allow_any_for_other_branch ... ok
test filter::test::doesnt_allow_any_for_other_repository ... ok
test filter::test::doesnt_allow_unexpected_tag ... ok
test filter::test::doesnt_allow_unexpected_tag_even_if_wanted_is_prefix ... ok
test filter::test::doesnt_allow_unexpected_tag_even_if_wanted_is_suffix ... ok
test filter::test::doesnt_allows_other_patch ... ok
test filter::test::only_allows_branch_creation ... ok
test filter::test::only_allows_branch_deletion ... ok
test filter::test::only_allows_branch_update ... ok
test filter::test::only_allows_patch_creation ... ok
test filter::test::only_allows_patch_update ... ok
test filter::test::yaml_roundtrip ... ok
test msg::trigger_from_ci_event_tests::trigger_patch_from_patch_created ... ok
test msg::trigger_from_ci_event_tests::trigger_patch_from_patch_updated ... ok
test msg::trigger_from_ci_event_tests::trigger_push_from_branch_created ... ok
test refs::test::creates_patch_from_str ... ok
test refs::test::extracts_branch_namespaced_branch ... ok
test refs::test::namespaced_branch_from_plain ... ok
test refs::test::plain_branch_name ... ok
test refs::test::qualified_branch_name_from_plain ... ok
test refs::test::ref_string_from_plain_branch_name ... ok
test run::test::serialize_run_state ... ok
test sensitive::test_sensitive::debugged ... ok
test sensitive::test_sensitive::deser ... ok
test sensitive::test_sensitive::displayed ... ok
test sensitive::test_sensitive::ser ... ok
test timeoutcmd::tests::bin_false ... ok
test msg::trigger_from_ci_event_tests::trigger_push_from_branch_updated ... ok
test timeoutcmd::tests::bin_true ... ok
test timeoutcmd::tests::hello_world ... ok
test timeoutcmd::tests::hello_world_to_stderr ... ok
test timeoutcmd::tests::kill ... ok
test timeoutcmd::tests::kill_stderr ... ok
test timeoutcmd::tests::pipe_through_cat ... ok
test timeoutcmd::tests::sleep_1 ... ok
test timeoutcmd::tests::sleep_for_too_long ... ok
test timeoutcmd::tests::yes_to_stderr ... ok
test timeoutcmd::tests::sleep_for_too_long_while_reading_with_realtimelines ... ok
test timeoutcmd::tests::yes_to_stdout ... ok
test timeoutcmd::tests::yes_to_stdout_while_reading_with_realtimelines ... ok
test result: ok. 86 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.50s
Running unittests src/bin/cib.rs (/workspace/cache/debug/deps/cib-c2ef12623fccbf87)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/bin/cibtool.rs (/workspace/cache/debug/deps/cibtool-776f23756c33a8d6)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/bin/default_branch.rs (/workspace/cache/debug/deps/default_branch-b15d6bc3d698c292)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/bin/synthetic-events.rs (/workspace/cache/debug/deps/synthetic_events-6c978a997e06b145)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running tests/subplot.rs (/workspace/cache/debug/deps/subplot-b99085e2fbcf3b2f)
running 71 tests
test adapter_with_url_runs_successfully ... ok
test add_information_about_run_that_s_finished_in_failure_to_database ... ok
test adapter_can_provide_url_for_info_on_run ... ok
test add_information_about_run_that_s_finished_successfully_to_database ... ok
test add_information_about_run_that_s_running_to_database ... ok
test allows_setting_minimum_log_level ... ok
test add_information_about_triggered_run_to_database ... ok
test can_add_a_branch_creation_event_to_queue ... ok
test can_add_a_branch_deletion_event_to_queue ... ok
test can_add_a_branch_update_event_to_queue ... ok
test can_add_a_patch_creation_event_to_queue ... ok
test can_add_a_patch_update_event_to_queue ... ok
test can_add_shutdown_event_to_queue ... ok
test can_output_trigger_message_for_a_ci_run ... ok
test can_remove_all_queued_events ... ok
test can_trigger_a_ci_run ... ok
test convert_recorded_node_events_into_ci_events ... ok
test count_in_a_single_process ... ok
test create_a_repository ... ok
test don_t_insert_event_for_non_existent_repository ... ok
test dummy_adapter_runs_successfully ... ok
test event_synthesizer_terminates_after_first_connection ... ok
test events_can_be_queued_and_removed_from_queue ... ok
test count_in_concurrent_processes has been running for over 60 seconds
test extract_cib_log_from_journald_and_pretty_print ... ok
test count_in_concurrent_processes ... ok
test fails_run_if_building_trigger_fails__but_does_not_crash ... ok
test filter_predicate_allow ... ok
test filter_predicate_and ... ok
test filter_predicate_branch ... ok
test filter_predicate_branchcreated ... ok
test filter_predicate_branchdeleted ... ok
test filter_predicate_branchupdated ... ok
test filter_predicate_deny ... ok
test filter_predicate_defaultbranch ... ok
test filter_predicate_hasfile ... ok
test filter_predicate_not ... ok
test filter_predicate_node ... ok
test filter_predicate_repository ... ok
test filter_predicate_tag ... ok
test filter_predicate_or ... ok
test gives_helpful_error_message_if_it_doesn_t_understand_its_configuration_file ... ok
test filter_recorded_ci_events ... ok
test gives_helpful_error_message_if_node_socket_can_t_be_found ... ok
test handles_adapter_failing_on_a_failed_run ... ok
test insert_events_into_queue ... ok
test handles_adapter_failing_on_a_successful_run ... ok
test logs_adapter_stderr_output ... ok
test logs_start_and_successful_end ... ok
test logs_termination_due_to_error ... ok
test process_queued_events ... ok
test produces_a_json_status_file ... ok
test produces_a_report_page_upon_request ... ok
test queue_a_node_event_for_processing ... ok
test record_node_events ... ok
test refuses_config_with_an_unknown_field ... ok
test remove_information_about_a_run_from_the_database ... ok
test reports_it_version ... ok
test runs_adapter_on_each_type_of_event ... ok
test runs_adapter_with_configuration ... ok
test runs_adapter_without_a_report_directory ... ok
test runs_adapters_for_all_matching_triggers ... ok
test insert_many_events_into_queue ... ok
test set_up_a_node ... ok
test shows_adapter_specification ... ok
test shows_json_config_as_json ... ok
test shows_yaml_config_as_json ... ok
test shuts_down_when_requested ... ok
test stops_if_the_node_connection_breaks ... ok
test update_and_show_information_about_run_to_running ... ok
test we_can_run_rad ... ok
test smoke_test__runs_adapter ... ok
test result: ok. 71 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 174.71s
Doc-tests radicle_ci_broker
running 3 tests
test src/msg.rs - msg::RunId (line 49) ... ok
test src/pull_queue.rs - pull_queue::PullQueue (line 12) ... ok
test src/timeoutcmd.rs - timeoutcmd (line 21) ... ok
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.23s
+ subplot docgen ci-broker.subplot -o doc/ci-broker.html
[32m INFO[0m Starting Subplot
[33m WARN[0m Embedded file is not used by any scenario: "broker-with-concurrent-adapters.yaml"
[31mERROR[0m Document has 1 warnings.
[2025-09-24T04:51:57Z ERROR ambient_ci::plan] ERROR: Action failed: failed to execute /bin/bash
[2025-09-24T04:51:57Z ERROR ambient_ci::plan] caused by: command failed: "/bin/bash": exit code 1
ERROR: failed to execute /bin/bash
caused by: command failed: "/bin/bash": exit code 1
EXIT CODE: 1
[2025-09-24T04:52:03Z INFO ambient] ambient ends successfully
{
"request": "trigger",
"version": 1,
"event_type": "patch",
"repository": {
"id": "rad:zwTxygwuz5LDGBq255RA2CbNGrz8",
"name": "radicle-ci-broker",
"description": "Radicle CI broker",
"private": false,
"default_branch": "main",
"delegates": [
"did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
"did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT"
]
},
"action": "Created",
"patch": {
"id": "9c75259b892d5fe0ca29ec2b50ee07dfbc8dd4af",
"author": {
"id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
"alias": "liw"
},
"title": "add all filters to config file so we verify they can be parsed",
"state": {
"status": "open",
"conflicts": []
},
"before": "aa70e645b36605db315cc012980e20571c9bb02f",
"after": "acd3dd068ef2ca0d1f6f69beaf5b82cb99db0a8a",
"commits": [
"acd3dd068ef2ca0d1f6f69beaf5b82cb99db0a8a",
"eb4d4a33e21b1e3f4f582f182215908d767351df",
"a2dec1a5b3ab5b34cea16c07b632023d9ce535fc"
],
"target": "aa70e645b36605db315cc012980e20571c9bb02f",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "9c75259b892d5fe0ca29ec2b50ee07dfbc8dd4af",
"author": {
"id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
"alias": "liw"
},
"description": "fix: add missing event filters for tag events\n\nAdd event filters TagCreated, TagUpdated, and TagDeleted. These were\nsupposed to already exist, but were never committed. They're in the\ndocumentation, though, so it's quite surprising that they don't work.\n\n\ntest: add scenario that uses all event filters in config file\n\nThis makes it more obvious if we miss support for a filter.",
"base": "aa70e645b36605db315cc012980e20571c9bb02f",
"oid": "acd3dd068ef2ca0d1f6f69beaf5b82cb99db0a8a",
"timestamp": 1758689297
}
]
}
}[2025-09-24T04:48:21Z INFO ambient] ambient starts
[2025-09-24T04:48:21Z DEBUG ambient] load default configuration file /home/_rad/.config/ambient/config.yaml if it exists
deprecated: the `cpus` field is replaced by `qemu.cpus`
deprecated: the `memory` field is replaced by `qemu.memory`
[2025-09-24T04:48:21Z DEBUG ambient] complete configuration: Config {
tmpdir: "/home/_rad/tmp",
image_store: "/home/_rad/ambient-images",
projects: "/dev/null",
state: "/home/_rad/ambient-state",
rsync_target: None,
rsync_target_base: None,
rsync_target_map: None,
dput_target: None,
executor: Some(
"/usr/bin/ambient-execute-plan",
),
artifacts_max_size: Byte(
1000000000,
),
cache_max_size: Byte(
30000000000,
),
qemu: QemuConfig {
cpus: 2,
memory: Byte(
12000000000,
),
kvm_binary: "/usr/bin/kvm",
ovmf_vars_file: "/usr/share/ovmf/OVMF.fd",
ovmf_code_file: "/usr/share/ovmf/OVMF.fd",
},
}
[2025-09-24T04:48:21Z DEBUG ambient] configuration: Config {
tmpdir: "/home/_rad/tmp",
image_store: "/home/_rad/ambient-images",
projects: "/dev/null",
state: "/home/_rad/ambient-state",
rsync_target: None,
rsync_target_base: None,
rsync_target_map: None,
dput_target: None,
executor: Some(
"/usr/bin/ambient-execute-plan",
),
artifacts_max_size: Byte(
1000000000,
),
cache_max_size: Byte(
30000000000,
),
qemu: QemuConfig {
cpus: 2,
memory: Byte(
12000000000,
),
kvm_binary: "/usr/bin/kvm",
ovmf_vars_file: "/usr/share/ovmf/OVMF.fd",
ovmf_code_file: "/usr/share/ovmf/OVMF.fd",
},
}
[2025-09-24T04:48:21Z DEBUG ambient_ci::project] load project state from /home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/meta.yaml
[2025-09-24T04:48:21Z DEBUG ambient_ci::run] latest commit: "aa70e645b36605db315cc012980e20571c9bb02f"
[2025-09-24T04:48:21Z DEBUG ambient_ci::run] is a git repository
[2025-09-24T04:48:21Z DEBUG ambient_ci::run] git repository is clean
[2025-09-24T04:48:21Z DEBUG ambient_ci::run] current (HEAD) commit: acd3dd068ef2ca0d1f6f69beaf5b82cb99db0a8a
[2025-09-24T04:48:21Z DEBUG ambient_ci::run] no dry run requested
[2025-09-24T04:48:21Z DEBUG ambient_ci::run] forced run requested
[2025-09-24T04:48:21Z DEBUG ambient_ci::run] run? true
[2025-09-24T04:48:21Z INFO ambient_ci::run] project rad:zwTxygwuz5LDGBq255RA2CbNGrz8: running CI
[2025-09-24T04:48:21Z DEBUG ambient_ci::run] Executing pre-plan steps
[2025-09-24T04:48:21Z DEBUG ambient_ci::plan] RUN: Action CargoFetch {
sourcedir: "/tmp/.tmpPtbBfA/src",
}
[2025-09-24T04:48:21Z DEBUG ambient_ci::action] Plan::execute: plan=CargoFetch {
sourcedir: "/tmp/.tmpPtbBfA/src",
}
[2025-09-24T04:48:21Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/dependencies",
"PATH": "/root/.cargo/bin:/bin:/home/_rad/.radicle/bin:/home/_rad/.cargo/bin",
"CARGO_TARGET_DIR": "/home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/cache",
},
source_dir: "/tmp/.tmpPtbBfA/src",
}
SPAWN: argv=["cargo", "--version"]
cwd=/tmp/.tmpPtbBfA/src (exists? true)
cargo 1.90.0 (840b83a10 2025-07-30)
SPAWN: argv=["cargo", "clippy", "--version"]
cwd=/tmp/.tmpPtbBfA/src (exists? true)
clippy 0.1.90 (1159e78c47 2025-09-14)
SPAWN: argv=["rustc", "--version"]
cwd=/tmp/.tmpPtbBfA/src (exists? true)
rustc 1.90.0 (1159e78c4 2025-09-14)
SPAWN: argv=["cargo", "fetch"]
cwd=/tmp/.tmpPtbBfA/src (exists? true)
[2025-09-24T04:48:21Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:21Z DEBUG ambient_ci::plan] All actions were performed successfully
[2025-09-24T04:48:21Z DEBUG ambient_ci::run] create virtual drive /home/_rad/tmp/.tmpWnhv4D/src.tar
[2025-09-24T04:48:21Z DEBUG ambient_ci::run] create virtual drive /home/_rad/tmp/.tmpWnhv4D/deps.tar
[2025-09-24T04:48:22Z DEBUG ambient_ci::run] create_executor_vdrive: executor="/usr/bin/ambient-execute-plan"
[2025-09-24T04:48:22Z DEBUG ambient_ci::run] create_executor_vdrive: plan=RunnablePlan {
steps: [
Mkdir {
pathname: "/workspace",
},
Mkdir {
pathname: "/workspace/artifacts",
},
TarExtract {
archive: "/dev/vdc",
directory: "/workspace/src",
},
TarExtract {
archive: "/dev/vdf",
directory: "/workspace/deps",
},
TarExtract {
archive: "/dev/vde",
directory: "/workspace/cache",
},
Spawn {
argv: [
"find",
"/workspace",
"-maxdepth",
"2",
"-ls",
],
},
CargoFmt,
CargoClippy,
Shell {
shell: "export CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:/root/.radicle/bin:$PATH\"\n\n# Check that `rad` is there.\nrad --help >/dev/null || (echo rad is not there; exit 1)\n\ncargo doc --workspace --no-deps\n\n# FIXME: We can't run upgrade tests from older versions because\n# Ambient only fetches dependencies for the current version.\n# Thus, we can't build the old versions. This is an Ambient\n# problem that we can't fix here. So we skip the upgrade tests.\ncargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2\n\nsubplot docgen ci-broker.subplot -o doc/ci-broker.html\nsubplot docgen doc/userguide.subplot -o doc/userguide.html\nmake -C doc\ncp doc/*.html /workspace/artifacts/.\n",
},
Custom(
Custom {
name: "dch",
args: {
"debfullname": String("Lars Wirzenius"),
"debemail": String("liw@liw.fi"),
},
},
),
Deb,
TarCreate {
archive: "/dev/vde",
directory: "/workspace/cache",
},
TarCreate {
archive: "/dev/vdd",
directory: "/workspace/artifacts",
},
],
executor_drive: Some(
"/dev/vdb",
),
source_drive: Some(
"/dev/vdc",
),
artifact_drive: Some(
"/dev/vdd",
),
cache_drive: Some(
"/dev/vde",
),
deps_drive: Some(
"/dev/vdf",
),
workspace_dir: Some(
"/workspace",
),
source_dir: Some(
"/workspace/src",
),
deps_dir: Some(
"/workspace/deps",
),
cache_dir: Some(
"/workspace/cache",
),
artifacts_dir: Some(
"/workspace/artifacts",
),
}
[2025-09-24T04:48:22Z DEBUG ambient_ci::run] executor bin /usr/bin/ambient-execute-plan
[2025-09-24T04:48:22Z DEBUG ambient_ci::run] copying /usr/bin/ambient-execute-plan to /home/_rad/tmp/.tmpWnhv4D/ambient-execute-plan/run-ci
[2025-09-24T04:48:22Z DEBUG ambient_ci::run] copy OK: true
[2025-09-24T04:48:22Z DEBUG ambient_ci::run] create virtual drive /home/_rad/tmp/.tmpWnhv4D/executor.tar
[2025-09-24T04:48:25Z DEBUG ambient_ci::project] removing run log file /home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log
[2025-09-24T04:48:25Z DEBUG ambient_ci::project] statedir is /home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8, exists? true
[2025-09-24T04:48:25Z DEBUG ambient_ci::project] creating run log file /home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log
[2025-09-24T04:48:25Z DEBUG ambient_ci::project] created run log file /home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log OK
[2025-09-24T04:48:25Z DEBUG ambient_ci::cloud_init] with_hostname called: "ambient"
[2025-09-24T04:48:25Z DEBUG ambient_ci::cloud_init] with_runcmd called: "echo xyzzy > /dev/ttyS1"
[2025-09-24T04:48:25Z DEBUG ambient_ci::cloud_init] with_runcmd called: "\n(set -xeu\nenv\ndir=\"$(mktemp -d)\"\ncd \"$dir\"\ntar -xvf /dev/vdb\nfind -ls || true\nldd ./run-ci || true\necho ================================ BEGIN ================================\nexport RUST_BACKTRACE=1\nif ./run-ci; then\n echo \"EXIT CODE: 0\"\nelse\n echo \"EXIT CODE: $?\"\nfi) > /dev/ttyS1 2>&1\n"
[2025-09-24T04:48:25Z DEBUG ambient_ci::cloud_init] with_runcmd called: "poweroff"
[2025-09-24T04:48:25Z DEBUG ambient_ci::cloud_init] LocalDataStoreBuilder: LocalDataStoreBuilder {
hostname: Some(
"ambient",
),
network: false,
bootcmd: [],
runcmd: [
"echo xyzzy > /dev/ttyS1",
"\n(set -xeu\nenv\ndir=\"$(mktemp -d)\"\ncd \"$dir\"\ntar -xvf /dev/vdb\nfind -ls || true\nldd ./run-ci || true\necho ================================ BEGIN ================================\nexport RUST_BACKTRACE=1\nif ./run-ci; then\n echo \"EXIT CODE: 0\"\nelse\n echo \"EXIT CODE: $?\"\nfi) > /dev/ttyS1 2>&1\n",
"poweroff",
],
}
[2025-09-24T04:48:25Z DEBUG ambient_ci::qemu] run QEMU
[2025-09-24T04:48:25Z DEBUG ambient_ci::qemu] create copy-on-write image and UEFI vars file
[2025-09-24T04:48:25Z DEBUG ambient_ci::qemu_utils] qemu-img create /home/_rad/tmp/.tmpPnzxXL/.tmpc0ERpZ/vm.qcow2 backing on /home/_rad/ambient.qcow2
[2025-09-24T04:48:25Z DEBUG ambient_ci::qemu] create cloud-init ISO file
[2025-09-24T04:48:25Z DEBUG ambient_ci::cloud_init] LocalDataStore: LocalDataStore {
hostname: "ambient",
network: false,
bootcmd: [],
runcmd: [
"echo xyzzy > /dev/ttyS1",
"\n(set -xeu\nenv\ndir=\"$(mktemp -d)\"\ncd \"$dir\"\ntar -xvf /dev/vdb\nfind -ls || true\nldd ./run-ci || true\necho ================================ BEGIN ================================\nexport RUST_BACKTRACE=1\nif ./run-ci; then\n echo \"EXIT CODE: 0\"\nelse\n echo \"EXIT CODE: $?\"\nfi) > /dev/ttyS1 2>&1\n",
"poweroff",
],
}
[2025-09-24T04:48:25Z DEBUG ambient_ci::cloud_init] write /tmp/.tmph3sJqA/meta-data
[2025-09-24T04:48:25Z DEBUG ambient_ci::cloud_init] write /tmp/.tmph3sJqA/user-data
[2025-09-24T04:48:25Z DEBUG ambient_ci::qemu] set console log file to /home/_rad/tmp/.tmpPnzxXL/.tmpc0ERpZ/console.log
[2025-09-24T04:48:25Z DEBUG ambient_ci::util] create file /home/_rad/tmp/.tmpPnzxXL/.tmpc0ERpZ/console.log
[2025-09-24T04:48:25Z DEBUG ambient_ci::qemu] set run file to /home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log
[2025-09-24T04:48:25Z DEBUG ambient_ci::util] create file /home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log
[2025-09-24T04:48:25Z DEBUG ambient_ci::qemu] run QEMU: QemuArgs {
args: [
"-m",
"11444",
"-smp",
"cpus=2",
"-cpu",
"kvm64",
"-machine",
"type=q35,accel=kvm,usb=off",
"-uuid",
"a85c9de7-edc0-4e54-bead-112e5733582c",
"-boot",
"strict=on",
"-name",
"ambient-ci-vm",
"-rtc",
"base=utc,driftfix=slew",
"-display",
"none",
"-device",
"virtio-rng-pci",
"-serial",
"file:/home/_rad/tmp/.tmpPnzxXL/.tmpc0ERpZ/console.log",
"-serial",
"file:/home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log",
"-drive",
"if=pflash,format=raw,unit=0,file=/usr/share/ovmf/OVMF.fd,readonly=on",
"-drive",
"if=pflash,format=raw,unit=1,file=/home/_rad/tmp/.tmpPnzxXL/.tmpc0ERpZ/vars.fd",
"-drive",
"format=qcow2,if=virtio,file=/home/_rad/tmp/.tmpPnzxXL/.tmpc0ERpZ/vm.qcow2",
"-drive",
"format=raw,if=virtio,file=/home/_rad/tmp/.tmpWnhv4D/executor.tar,readonly=on",
"-cdrom",
"/home/_rad/tmp/.tmpPnzxXL/.tmpc0ERpZ/cloud_init.iso",
"-drive",
"format=raw,if=virtio,file=/home/_rad/tmp/.tmpWnhv4D/src.tar,readonly=on",
"-drive",
"format=raw,if=virtio,file=/home/_rad/tmp/.tmpWnhv4D/artifacts.tar",
"-drive",
"format=raw,if=virtio,file=/home/_rad/tmp/.tmpWnhv4D/cache.tar",
"-drive",
"format=raw,if=virtio,file=/home/_rad/tmp/.tmpWnhv4D/deps.tar,readonly=on",
"-nodefaults",
"-no-user-config",
],
}
[2025-09-24T04:51:59Z DEBUG ambient_ci::qemu] QEMU finished OK
[2025-09-24T04:51:59Z DEBUG ambient_ci::qemu] run log:
--------------------==========
[2025-09-24T04:48:28Z TRACE ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-24T04:48:28Z DEBUG ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-24T04:48:28Z INFO ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-24T04:48:28Z WARN ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
[2025-09-24T04:48:28Z ERROR ambient_execute_plan] ambient-execute-plan version 0.7.0@12daec3 starts
RunnablePlan::from_file: filename=plan.yaml
steps:
- action: mkdir
pathname: /workspace
- action: mkdir
pathname: /workspace/artifacts
- action: tar_extract
archive: /dev/vdc
directory: /workspace/src
- action: tar_extract
archive: /dev/vdf
directory: /workspace/deps
- action: tar_extract
archive: /dev/vde
directory: /workspace/cache
- action: spawn
argv:
- find
- /workspace
- -maxdepth
- '2'
- -ls
- action: cargo_fmt
- action: cargo_clippy
- action: shell
shell: |
export CARGO_TARGET_DIR=/workspace/cache
export CARGO_HOME=/workspace/deps
export HOME=/root
export PATH="/root/.cargo/bin:/root/.radicle/bin:$PATH"
# Check that `rad` is there.
rad --help >/dev/null || (echo rad is not there; exit 1)
cargo doc --workspace --no-deps
# FIXME: We can't run upgrade tests from older versions because
# Ambient only fetches dependencies for the current version.
# Thus, we can't build the old versions. This is an Ambient
# problem that we can't fix here. So we skip the upgrade tests.
cargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2
subplot docgen ci-broker.subplot -o doc/ci-broker.html
subplot docgen doc/userguide.subplot -o doc/userguide.html
make -C doc
cp doc/*.html /workspace/artifacts/.
- action: custom
name: dch
args:
debfullname: Lars Wirzenius
debemail: liw@liw.fi
- action: deb
- action: tar_create
archive: /dev/vde
directory: /workspace/cache
- action: tar_create
archive: /dev/vdd
directory: /workspace/artifacts
executor_drive: /dev/vdb
source_drive: /dev/vdc
artifact_drive: /dev/vdd
cache_drive: /dev/vde
deps_drive: /dev/vdf
workspace_dir: /workspace
source_dir: /workspace/src
deps_dir: /workspace/deps
cache_dir: /workspace/cache
artifacts_dir: /workspace/artifacts
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action Mkdir {
pathname: "/workspace",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: plan=Mkdir {
pathname: "/workspace",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action Mkdir {
pathname: "/workspace/artifacts",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: plan=Mkdir {
pathname: "/workspace/artifacts",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vdc",
directory: "/workspace/src",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vdc",
directory: "/workspace/src",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
[2025-09-24T04:48:28Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src
[2025-09-24T04:48:28Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:28Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vdf",
directory: "/workspace/deps",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vdf",
directory: "/workspace/deps",
}
[2025-09-24T04:48:28Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
[2025-09-24T04:48:28Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps
[2025-09-24T04:48:30Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-24T04:48:30Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:30Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-24T04:48:30Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
archive: "/dev/vde",
directory: "/workspace/cache",
}
[2025-09-24T04:48:30Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
[2025-09-24T04:48:30Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache
[2025-09-24T04:48:36Z TRACE ambient_ci::vdrive] extraction OK
[2025-09-24T04:48:36Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:36Z DEBUG ambient_ci::plan] RUN: Action Spawn {
argv: [
"find",
"/workspace",
"-maxdepth",
"2",
"-ls",
],
}
[2025-09-24T04:48:36Z DEBUG ambient_ci::action] Plan::execute: plan=Spawn {
argv: [
"find",
"/workspace",
"-maxdepth",
"2",
"-ls",
],
}
[2025-09-24T04:48:36Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
cwd=/workspace/src (exists? true)
2621441 4 drwxr-xr-x 6 root root 4096 Sep 24 04:48 /workspace
2621442 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/artifacts
2649968 4 drwxr-xr-x 6 root root 4096 Sep 20 06:05 /workspace/cache
2654072 4 drwxr-xr-x 12 root root 4096 Sep 23 09:10 /workspace/cache/doc
2654625 4 drwxr-xr-x 7 root root 4096 Sep 23 09:13 /workspace/cache/debug
2649969 4 -rw-r--r-- 1 root root 1038 Sep 24 04:48 /workspace/cache/.rustc_info.json
2649970 4 drwxr-xr-x 7 root root 4096 Sep 23 09:14 /workspace/cache/release
2654623 4 drwxr-xr-x 2 root root 4096 Sep 20 05:52 /workspace/cache/tmp
2654624 4 -rw-r--r-- 1 root root 218 Sep 20 05:56 /workspace/cache/.rustdoc_fingerprint.json
2621696 4 drwxr-xr-x 3 root root 4096 Sep 24 04:48 /workspace/deps
2649967 0 -rw-r--r-- 1 root root 0 Sep 10 13:33 /workspace/deps/.package-cache
2621697 4 drwxr-xr-x 5 root root 4096 Sep 10 13:33 /workspace/deps/registry
2649965 120 -rw-r--r-- 1 root root 122880 Sep 24 04:48 /workspace/deps/.global-cache
2649966 0 -rw-r--r-- 1 root root 0 Sep 10 13:33 /workspace/deps/.package-cache-mutate
2621443 4 drwxr-xr-x 10 root root 4096 Sep 24 04:48 /workspace/src
2621494 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/src/doc
2621518 4 -rw-r--r-- 1 root root 732 Sep 24 04:48 /workspace/src/ci-broker.yaml
2621525 12 -rw-r--r-- 1 root root 9723 Sep 24 04:48 /workspace/src/LICENSE-APACHE
2621444 92 -rw-r--r-- 1 root root 92971 Sep 24 04:48 /workspace/src/ci-broker.md
2621493 8 -rw-r--r-- 1 root root 6528 Sep 24 04:48 /workspace/src/flake.lock
2621522 40 -rw-r--r-- 1 root root 37288 Sep 24 04:48 /workspace/src/NEWS.md
2621516 4 -rw-r--r-- 1 root root 386 Sep 24 04:48 /workspace/src/cibtool.1
2621529 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/src/.radicle
2621536 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/src/.ambient
2621526 4 -rw-r--r-- 1 root root 1716 Sep 24 04:48 /workspace/src/Cargo.toml
2621445 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/src/tests
2621517 4 -rw-r--r-- 1 root root 440 Sep 24 04:48 /workspace/src/cib.1
2621519 4 -rw-r--r-- 1 root root 257 Sep 24 04:48 /workspace/src/ci-broker.subplot
2621528 4 -rw-r--r-- 1 root root 1188 Sep 24 04:48 /workspace/src/CONTRIBUTING.md
2621521 8 -rw-r--r-- 1 root root 4796 Sep 24 04:48 /workspace/src/README.md
2621532 4 -rw-r--r-- 1 root root 10 Sep 24 04:48 /workspace/src/.envrc
2621531 4 -rw-r--r-- 1 root root 44 Sep 24 04:48 /workspace/src/.gitignore
2621492 8 -rw-r--r-- 1 root root 5951 Sep 24 04:48 /workspace/src/flake.nix
2621520 4 -rw-r--r-- 1 root root 802 Sep 24 04:48 /workspace/src/build.rs
2621527 100 -rw-r--r-- 1 root root 98580 Sep 24 04:48 /workspace/src/Cargo.lock
2621504 4 drwxr-xr-x 3 root root 4096 Sep 24 04:48 /workspace/src/debian
2621538 4 drwxr-xr-x 8 root root 4096 Sep 24 04:48 /workspace/src/.git
2621524 4 -rw-r--r-- 1 root root 1079 Sep 24 04:48 /workspace/src/LICENSE-MIT
2621523 4 -rw-r--r-- 1 root root 334 Sep 24 04:48 /workspace/src/Makefile
2621533 4 drwxr-xr-x 2 root root 4096 Sep 24 04:48 /workspace/src/.cargo
2621447 4 drwxr-xr-x 4 root root 4096 Sep 24 04:48 /workspace/src/src
[2025-09-24T04:48:36Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:36Z DEBUG ambient_ci::plan] RUN: Action CargoFmt
[2025-09-24T04:48:36Z DEBUG ambient_ci::action] Plan::execute: plan=CargoFmt
[2025-09-24T04:48:36Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["cargo", "--version"]
cwd=/workspace/src (exists? true)
cargo 1.90.0 (840b83a10 2025-07-30)
SPAWN: argv=["cargo", "clippy", "--version"]
cwd=/workspace/src (exists? true)
clippy 0.1.90 (1159e78c47 2025-09-14)
SPAWN: argv=["rustc", "--version"]
cwd=/workspace/src (exists? true)
rustc 1.90.0 (1159e78c4 2025-09-14)
SPAWN: argv=["cargo", "fmt", "--check"]
cwd=/workspace/src (exists? true)
[2025-09-24T04:48:37Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:37Z DEBUG ambient_ci::plan] RUN: Action CargoClippy
[2025-09-24T04:48:37Z DEBUG ambient_ci::action] Plan::execute: plan=CargoClippy
[2025-09-24T04:48:37Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["cargo", "--version"]
cwd=/workspace/src (exists? true)
cargo 1.90.0 (840b83a10 2025-07-30)
SPAWN: argv=["cargo", "clippy", "--version"]
cwd=/workspace/src (exists? true)
clippy 0.1.90 (1159e78c47 2025-09-14)
SPAWN: argv=["rustc", "--version"]
cwd=/workspace/src (exists? true)
rustc 1.90.0 (1159e78c4 2025-09-14)
SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
cwd=/workspace/src (exists? true)
Compiling radicle-ci-broker v0.20.1 (/workspace/src)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.52s
[2025-09-24T04:48:41Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-09-24T04:48:41Z DEBUG ambient_ci::plan] RUN: Action Shell {
shell: "export CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:/root/.radicle/bin:$PATH\"\n\n# Check that `rad` is there.\nrad --help >/dev/null || (echo rad is not there; exit 1)\n\ncargo doc --workspace --no-deps\n\n# FIXME: We can't run upgrade tests from older versions because\n# Ambient only fetches dependencies for the current version.\n# Thus, we can't build the old versions. This is an Ambient\n# problem that we can't fix here. So we skip the upgrade tests.\ncargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2\n\nsubplot docgen ci-broker.subplot -o doc/ci-broker.html\nsubplot docgen doc/userguide.subplot -o doc/userguide.html\nmake -C doc\ncp doc/*.html /workspace/artifacts/.\n",
}
[2025-09-24T04:48:41Z DEBUG ambient_ci::action] Plan::execute: plan=Shell {
shell: "export CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:/root/.radicle/bin:$PATH\"\n\n# Check that `rad` is there.\nrad --help >/dev/null || (echo rad is not there; exit 1)\n\ncargo doc --workspace --no-deps\n\n# FIXME: We can't run upgrade tests from older versions because\n# Ambient only fetches dependencies for the current version.\n# Thus, we can't build the old versions. This is an Ambient\n# problem that we can't fix here. So we skip the upgrade tests.\ncargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2\n\nsubplot docgen ci-broker.subplot -o doc/ci-broker.html\nsubplot docgen doc/userguide.subplot -o doc/userguide.html\nmake -C doc\ncp doc/*.html /workspace/artifacts/.\n",
}
[2025-09-24T04:48:41Z DEBUG ambient_ci::action] Plan::execute: context=Context {
envs: {
"CARGO_HOME": "/workspace/deps",
"PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"CARGO_TARGET_DIR": "/workspace/cache",
},
source_dir: "/workspace/src",
}
SPAWN: argv=["/bin/bash", "-c", "set -xeuo pipefail\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:/root/.radicle/bin:$PATH\"\n\n# Check that `rad` is there.\nrad --help >/dev/null || (echo rad is not there; exit 1)\n\ncargo doc --workspace --no-deps\n\n# FIXME: We can't run upgrade tests from older versions because\n# Ambient only fetches dependencies for the current version.\n# Thus, we can't build the old versions. This is an Ambient\n# problem that we can't fix here. So we skip the upgrade tests.\ncargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2\n\nsubplot docgen ci-broker.subplot -o doc/ci-broker.html\nsubplot docgen doc/userguide.subplot -o doc/userguide.html\nmake -C doc\ncp doc/*.html /workspace/artifacts/.\n\n"]
cwd=/workspace/src (exists? true)
+ export CARGO_TARGET_DIR=/workspace/cache
+ CARGO_TARGET_DIR=/workspace/cache
+ export CARGO_HOME=/workspace/deps
+ CARGO_HOME=/workspace/deps
+ export HOME=/root
+ HOME=/root
+ export PATH=/root/.cargo/bin:/root/.radicle/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ PATH=/root/.cargo/bin:/root/.radicle/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ rad --help
+ cargo doc --workspace --no-deps
Compiling radicle-ci-broker v0.20.1 (/workspace/src)
Documenting radicle-ci-broker v0.20.1 (/workspace/src)
warning: unresolved link to `RunningProcess`
--> src/adapter.rs:357:44
|
357 | /// Error from [`TimeoutCommand`] or [`RunningProcess`].
| ^^^^^^^^^^^^^^ no item named `RunningProcess` in scope
|
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
= note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
warning: unresolved link to `RunningProcess`
--> src/timeoutcmd.rs:74:24
|
74 | /// output. See also [`RunningProcess`].
| ^^^^^^^^^^^^^^ no item named `RunningProcess` in scope
|
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
warning: `radicle-ci-broker` (lib doc) generated 2 warnings
Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.73s
Generated /workspace/cache/doc/radicle_ci_broker/index.html and 4 other files
+ cargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2
Compiling radicle-ci-broker v0.20.1 (/workspace/src)
Finished `test` profile [unoptimized + debuginfo] target(s) in 7.47s
Running unittests src/lib.rs (/workspace/cache/debug/deps/radicle_ci_broker-a1b772b1a7ff0a44)
running 86 tests
test adapter::test::adapter_ends_ok_before_first_message ... ok
test adapter::test::adapter_does_not_exist ... ok
test adapter::test::adapter_exits_nonzero ... ok
test adapter::test::adapter_ends_ok_before_second_message ... ok
test adapter::test::adapter_first_message_isnt_triggered ... ok
test adapter::test::adapter_has_bad_interpreter ... ok
test adapter::test::adapter_is_killed_after_second_message ... ok
test adapter::test::adapter_is_killed_before_any_messages ... ok
test adapter::test::adapter_is_killed_before_first_message ... ok
test adapter::test::adapter_is_not_executable ... ok
test adapter::test::adapter_outputs_too_many_messages ... ok
test adapter::test::adapter_produces_as_bad_message ... ok
test adapter::test::adapter_reports_failure ... ok
test adapter::test::adapter_reports_success ... ok
test broker::test::adapter_fails ... ok
test ci_event::test::branch_created ... ok
test ci_event::test::branch_deleted ... ok
test ci_event::test::branch_updated ... ok
test ci_event::test::nothing_updated ... ok
test ci_event::test::patch_created ... ok
test ci_event::test::patch_updated ... ok
test ci_event::test::skipped ... ok
test broker::test::executes_adapter ... ok
test ci_event::test_parsed_ref::branch ... ok
test ci_event::test_parsed_ref::patch ... ok
test config::test::parse_config_yaml ... ok
test config::test::parse_config_yaml_without_max_run_time ... ok
test filter::test::allows_all_for_default_repository ... ok
test filter::test::allows_all_for_main_branch ... ok
test ci_event::test_parsed_ref::tag ... ok
test filter::test::allows_all_for_right_node ... ok
test filter::test::allows_any_event ... ok
test filter::test::allows_branch_creation ... ok
test filter::test::allows_branch_deletion ... ok
test filter::test::allows_branch_update ... ok
test filter::test::allows_if_all_allow ... ok
test filter::test::allows_if_any_allows ... ok
test filter::test::allows_no_event ... ok
test filter::test::allows_none_for_wrong_node ... ok
test filter::test::allows_opposite ... ok
test filter::test::allows_patch_creation ... ok
test filter::test::allows_patch_update ... ok
test filter::test::allows_shutdown ... ok
test filter::test::allows_specific_patch ... ok
test filter::test::allows_wanted_tag ... ok
test filter::test::deserialize_yaml_nested_not ... ok
test filter::test::doesnt_allow_any_for_other_branch ... ok
test filter::test::doesnt_allow_any_for_other_repository ... ok
test filter::test::doesnt_allow_unexpected_tag ... ok
test filter::test::doesnt_allow_unexpected_tag_even_if_wanted_is_prefix ... ok
test filter::test::doesnt_allow_unexpected_tag_even_if_wanted_is_suffix ... ok
test filter::test::doesnt_allows_other_patch ... ok
test filter::test::only_allows_branch_creation ... ok
test filter::test::only_allows_branch_deletion ... ok
test filter::test::only_allows_branch_update ... ok
test filter::test::only_allows_patch_creation ... ok
test filter::test::only_allows_patch_update ... ok
test filter::test::yaml_roundtrip ... ok
test msg::trigger_from_ci_event_tests::trigger_patch_from_patch_created ... ok
test msg::trigger_from_ci_event_tests::trigger_patch_from_patch_updated ... ok
test msg::trigger_from_ci_event_tests::trigger_push_from_branch_created ... ok
test refs::test::creates_patch_from_str ... ok
test refs::test::extracts_branch_namespaced_branch ... ok
test refs::test::namespaced_branch_from_plain ... ok
test refs::test::plain_branch_name ... ok
test refs::test::qualified_branch_name_from_plain ... ok
test refs::test::ref_string_from_plain_branch_name ... ok
test run::test::serialize_run_state ... ok
test sensitive::test_sensitive::debugged ... ok
test sensitive::test_sensitive::deser ... ok
test sensitive::test_sensitive::displayed ... ok
test sensitive::test_sensitive::ser ... ok
test timeoutcmd::tests::bin_false ... ok
test msg::trigger_from_ci_event_tests::trigger_push_from_branch_updated ... ok
test timeoutcmd::tests::bin_true ... ok
test timeoutcmd::tests::hello_world ... ok
test timeoutcmd::tests::hello_world_to_stderr ... ok
test timeoutcmd::tests::kill ... ok
test timeoutcmd::tests::kill_stderr ... ok
test timeoutcmd::tests::pipe_through_cat ... ok
test timeoutcmd::tests::sleep_1 ... ok
test timeoutcmd::tests::sleep_for_too_long ... ok
test timeoutcmd::tests::yes_to_stderr ... ok
test timeoutcmd::tests::sleep_for_too_long_while_reading_with_realtimelines ... ok
test timeoutcmd::tests::yes_to_stdout ... ok
test timeoutcmd::tests::yes_to_stdout_while_reading_with_realtimelines ... ok
test result: ok. 86 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.50s
Running unittests src/bin/cib.rs (/workspace/cache/debug/deps/cib-c2ef12623fccbf87)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/bin/cibtool.rs (/workspace/cache/debug/deps/cibtool-776f23756c33a8d6)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/bin/default_branch.rs (/workspace/cache/debug/deps/default_branch-b15d6bc3d698c292)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/bin/synthetic-events.rs (/workspace/cache/debug/deps/synthetic_events-6c978a997e06b145)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running tests/subplot.rs (/workspace/cache/debug/deps/subplot-b99085e2fbcf3b2f)
running 71 tests
test adapter_with_url_runs_successfully ... ok
test add_information_about_run_that_s_finished_in_failure_to_database ... ok
test adapter_can_provide_url_for_info_on_run ... ok
test add_information_about_run_that_s_finished_successfully_to_database ... ok
test add_information_about_run_that_s_running_to_database ... ok
test allows_setting_minimum_log_level ... ok
test add_information_about_triggered_run_to_database ... ok
test can_add_a_branch_creation_event_to_queue ... ok
test can_add_a_branch_deletion_event_to_queue ... ok
test can_add_a_branch_update_event_to_queue ... ok
test can_add_a_patch_creation_event_to_queue ... ok
test can_add_a_patch_update_event_to_queue ... ok
test can_add_shutdown_event_to_queue ... ok
test can_output_trigger_message_for_a_ci_run ... ok
test can_remove_all_queued_events ... ok
test can_trigger_a_ci_run ... ok
test convert_recorded_node_events_into_ci_events ... ok
test count_in_a_single_process ... ok
test create_a_repository ... ok
test don_t_insert_event_for_non_existent_repository ... ok
test dummy_adapter_runs_successfully ... ok
test event_synthesizer_terminates_after_first_connection ... ok
test events_can_be_queued_and_removed_from_queue ... ok
test count_in_concurrent_processes has been running for over 60 seconds
test extract_cib_log_from_journald_and_pretty_print ... ok
test count_in_concurrent_processes ... ok
test fails_run_if_building_trigger_fails__but_does_not_crash ... ok
test filter_predicate_allow ... ok
test filter_predicate_and ... ok
test filter_predicate_branch ... ok
test filter_predicate_branchcreated ... ok
test filter_predicate_branchdeleted ... ok
test filter_predicate_branchupdated ... ok
test filter_predicate_deny ... ok
test filter_predicate_defaultbranch ... ok
test filter_predicate_hasfile ... ok
test filter_predicate_not ... ok
test filter_predicate_node ... ok
test filter_predicate_repository ... ok
test filter_predicate_tag ... ok
test filter_predicate_or ... ok
test gives_helpful_error_message_if_it_doesn_t_understand_its_configuration_file ... ok
test filter_recorded_ci_events ... ok
test gives_helpful_error_message_if_node_socket_can_t_be_found ... ok
test handles_adapter_failing_on_a_failed_run ... ok
test insert_events_into_queue ... ok
test handles_adapter_failing_on_a_successful_run ... ok
test logs_adapter_stderr_output ... ok
test logs_start_and_successful_end ... ok
test logs_termination_due_to_error ... ok
test process_queued_events ... ok
test produces_a_json_status_file ... ok
test produces_a_report_page_upon_request ... ok
test queue_a_node_event_for_processing ... ok
test record_node_events ... ok
test refuses_config_with_an_unknown_field ... ok
test remove_information_about_a_run_from_the_database ... ok
test reports_it_version ... ok
test runs_adapter_on_each_type_of_event ... ok
test runs_adapter_with_configuration ... ok
test runs_adapter_without_a_report_directory ... ok
test runs_adapters_for_all_matching_triggers ... ok
test insert_many_events_into_queue ... ok
test set_up_a_node ... ok
test shows_adapter_specification ... ok
test shows_json_config_as_json ... ok
test shows_yaml_config_as_json ... ok
test shuts_down_when_requested ... ok
test stops_if_the_node_connection_breaks ... ok
test update_and_show_information_about_run_to_running ... ok
test we_can_run_rad ... ok
test smoke_test__runs_adapter ... ok
test result: ok. 71 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 174.71s
Doc-tests radicle_ci_broker
running 3 tests
test src/msg.rs - msg::RunId (line 49) ... ok
test src/pull_queue.rs - pull_queue::PullQueue (line 12) ... ok
test src/timeoutcmd.rs - timeoutcmd (line 21) ... ok
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.23s
+ subplot docgen ci-broker.subplot -o doc/ci-broker.html
INFO Starting Subplot
WARN Embedded file is not used by any scenario: "broker-with-concurrent-adapters.yaml"
ERROR Document has 1 warnings.
[2025-09-24T04:51:57Z ERROR ambient_ci::plan] ERROR: Action failed: failed to execute /bin/bash
[2025-09-24T04:51:57Z ERROR ambient_ci::plan] caused by: command failed: "/bin/bash": exit code 1
ERROR: failed to execute /bin/bash
caused by: command failed: "/bin/bash": exit code 1
EXIT CODE: 1
====================
[2025-09-24T04:52:00Z DEBUG ambient_ci::run] remove old cache
[2025-09-24T04:52:00Z DEBUG ambient_ci::run] extract cache
[2025-09-24T04:52:02Z DEBUG ambient_ci::run] Executing post-plan steps
[2025-09-24T04:52:02Z DEBUG ambient_ci::plan] All actions were performed successfully
[2025-09-24T04:52:02Z DEBUG ambient_ci::project] write project state to /home/_rad/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/meta.yaml
[2025-09-24T04:52:03Z INFO ambient] ambient ends successfully
<empty log>