CI run for rad:zwTxygwuz5LDGBq255RA2CbNGrz8

Radicle repository id rad:zwTxygwuz5LDGBq255RA2CbNGrz8

Table of Contents

Run log

[2025-08-19T14:25:26Z INFO  ambient] ambient starts
[=3h[=3hBdsDxe: 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)
Welcome to GRUB!


INFO: Block devices
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
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   2.9M  1 disk 
vdc    254:32   0   4.4M  1 disk 
vdd    254:48   0   9.3G  0 disk 
vde    254:64   0  46.6G  0 disk 
vdf    254:80   0 631.5M  1 disk 
INFO: Extracting tar archive from /dev/vdb
drwxr-xr-x _rad/_rad         0 2025-08-19 14:19 ./
-rw-r--r-- _rad/_rad      1793 2025-08-19 14:19 ./plan.yaml
-rwxr-xr-x _rad/_rad   3003032 2025-08-19 14:19 ./run-ci
INFO: Extracted files:
  1477809      4 drwxr-xr-x   2 1001     1001         4096 Aug 19 14:19 .
  1477810      4 -rw-r--r--   1 1001     1001         1793 Aug 19 14:19 ./plan.yaml
  1477881   2936 -rwxr-xr-x   1 1001     1001      3003032 Aug 19 14:19 ./run-ci
INFO: Running run-ci from /dev/vdb
================================ BEGIN ================================
[2025-08-19T14:19:43Z TRACE ambient_execute_plan] ambient-execute-plan starts
[2025-08-19T14:19:43Z DEBUG ambient_execute_plan] ambient-execute-plan starts
[2025-08-19T14:19:43Z INFO  ambient_execute_plan] ambient-execute-plan starts
[2025-08-19T14:19:43Z WARN  ambient_execute_plan] ambient-execute-plan starts
[2025-08-19T14:19:43Z ERROR ambient_execute_plan] ambient-execute-plan 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


RUN: Action Mkdir {
    pathname: "/workspace",
}
[2025-08-19T14:19:43Z DEBUG ambient_ci::action] Plan::execute: Mkdir {
        pathname: "/workspace",
    }
RUN: Action finished OK
RUN: Action Mkdir {
    pathname: "/workspace/artifacts",
}
[2025-08-19T14:19:43Z DEBUG ambient_ci::action] Plan::execute: Mkdir {
        pathname: "/workspace/artifacts",
    }
RUN: Action finished OK
RUN: Action TarExtract {
    archive: "/dev/vdc",
    directory: "/workspace/src",
}
[2025-08-19T14:19:43Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
        archive: "/dev/vdc",
        directory: "/workspace/src",
    }
[2025-08-19T14:19:43Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src
[2025-08-19T14:19:43Z TRACE ambient_ci::vdrive] extraction OK
RUN: Action finished OK
RUN: Action TarExtract {
    archive: "/dev/vdf",
    directory: "/workspace/deps",
}
[2025-08-19T14:19:43Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
        archive: "/dev/vdf",
        directory: "/workspace/deps",
    }
[2025-08-19T14:19:43Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps
[2025-08-19T14:19:45Z TRACE ambient_ci::vdrive] extraction OK
RUN: Action finished OK
RUN: Action TarExtract {
    archive: "/dev/vde",
    directory: "/workspace/cache",
}
[2025-08-19T14:19:45Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
        archive: "/dev/vde",
        directory: "/workspace/cache",
    }
[2025-08-19T14:19:45Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache
[2025-08-19T14:20:43Z TRACE ambient_ci::vdrive] extraction OK
RUN: Action finished OK
RUN: Action Spawn {
    argv: [
        "find",
        "/workspace",
        "-maxdepth",
        "2",
        "-ls",
    ],
}
[2025-08-19T14:20:43Z DEBUG ambient_ci::action] Plan::execute: Spawn {
        argv: [
            "find",
            "/workspace",
            "-maxdepth",
            "2",
            "-ls",
        ],
    }
SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
       cwd=/workspace/src (exists? true)
       extra_env=[]
  3932161      4 drwxr-xr-x   6 root     root         4096 Aug 19 14:19 /workspace
  3932162      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:19 /workspace/artifacts
  3932338      4 drwxr-xr-x   3 root     root         4096 Aug 19 14:18 /workspace/deps
  3932340    112 -rw-r--r--   1 root     root       114688 Aug 19 14:18 /workspace/deps/.global-cache
  3932339      0 -rw-r--r--   1 root     root            0 Aug 13 05:20 /workspace/deps/.package-cache-mutate
  3932341      0 -rw-r--r--   1 root     root            0 Aug 13 05:20 /workspace/deps/.package-cache
  3932342      4 drwxr-xr-x   5 root     root         4096 Aug 13 05:20 /workspace/deps/registry
  3932163      4 drwxr-xr-x  10 root     root         4096 Aug 19 14:18 /workspace/src
  3932165      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:18 /workspace/src/.radicle
  3932222     36 -rw-r--r--   1 root     root        34789 Aug 19 14:18 /workspace/src/NEWS.md
  3932327     92 -rw-r--r--   1 root     root        90113 Aug 19 14:18 /workspace/src/Cargo.lock
  3932328      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:18 /workspace/src/doc
  3932235      4 -rw-r--r--   1 root     root          732 Aug 19 14:18 /workspace/src/ci-broker.yaml
  3932240      4 -rw-r--r--   1 root     root         1696 Aug 19 14:18 /workspace/src/Cargo.toml
  3932238      8 -rw-r--r--   1 root     root         5951 Aug 19 14:18 /workspace/src/flake.nix
  3932325      8 -rw-r--r--   1 root     root         6528 Aug 19 14:18 /workspace/src/flake.lock
  3932323     12 -rw-r--r--   1 root     root         9723 Aug 19 14:18 /workspace/src/LICENSE-APACHE
  3932239      4 -rw-r--r--   1 root     root           44 Aug 19 14:18 /workspace/src/.gitignore
  3932169      4 -rw-r--r--   1 root     root         1079 Aug 19 14:18 /workspace/src/LICENSE-MIT
  3932215     92 -rw-r--r--   1 root     root        90815 Aug 19 14:18 /workspace/src/ci-broker.md
  3932220      4 -rw-r--r--   1 root     root          257 Aug 19 14:18 /workspace/src/ci-broker.subplot
  3932326      4 -rw-r--r--   1 root     root         1188 Aug 19 14:18 /workspace/src/CONTRIBUTING.md
  3932324      4 -rw-r--r--   1 root     root          334 Aug 19 14:18 /workspace/src/Makefile
  3932241      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:18 /workspace/src/tests
  3932216      4 -rw-r--r--   1 root     root          386 Aug 19 14:18 /workspace/src/cibtool.1
  3932243      4 drwxr-xr-x   8 root     root         4096 Aug 19 14:18 /workspace/src/.git
  3932221      4 -rw-r--r--   1 root     root           10 Aug 19 14:18 /workspace/src/.envrc
  3932223      4 drwxr-xr-x   3 root     root         4096 Aug 19 14:18 /workspace/src/debian
  3932236      8 -rw-r--r--   1 root     root         4796 Aug 19 14:18 /workspace/src/README.md
  3932170      4 drwxr-xr-x   4 root     root         4096 Aug 19 14:18 /workspace/src/src
  3932167      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:18 /workspace/src/.ambient
  3932237      4 -rw-r--r--   1 root     root          970 Aug 19 14:18 /workspace/src/build.rs
  3932164      4 -rw-r--r--   1 root     root          440 Aug 19 14:18 /workspace/src/cib.1
  3932217      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:18 /workspace/src/.cargo
  3955350      4 drwxr-xr-x   6 root     root         4096 Aug 13 05:25 /workspace/cache
  3963446      4 drwxr-xr-x   7 root     root         4096 Aug 18 16:09 /workspace/cache/release
  3967408      4 drwxr-xr-x  12 root     root         4096 Aug 18 16:06 /workspace/cache/doc
  3955352      4 drwxr-xr-x   7 root     root         4096 Aug 18 16:09 /workspace/cache/debug
  3955351      4 drwxr-xr-x   2 root     root         4096 Aug 13 05:20 /workspace/cache/tmp
  3963445      4 -rw-r--r--   1 root     root          218 Aug 13 05:21 /workspace/cache/.rustdoc_fingerprint.json
  3967407      4 -rw-r--r--   1 root     root         1034 Aug 18 16:06 /workspace/cache/.rustc_info.json
RUN: Action finished OK
RUN: Action CargoFmt
[2025-08-19T14:20:44Z DEBUG ambient_ci::action] Plan::execute: CargoFmt
SPAWN: argv=["cargo", "fmt", "--check"]
       cwd=/workspace/src (exists? true)
       extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
RUN: Action finished OK
RUN: Action CargoClippy
[2025-08-19T14:20:45Z DEBUG ambient_ci::action] Plan::execute: CargoClippy
SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
       cwd=/workspace/src (exists? true)
       extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
   Compiling radicle-ci-broker v0.19.1 (/workspace/src)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.36s
RUN: Action finished OK
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-08-19T14:20:55Z DEBUG ambient_ci::action] Plan::execute: 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",
    }
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)
       extra_env=[]
+ 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:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ PATH=/root/.cargo/bin:/root/.radicle/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.19.1 (/workspace/src)
 Documenting radicle-ci-broker v0.19.1 (/workspace/src)
warning: unresolved link to `RunningProcess`
   --> src/adapter.rs:361:44
    |
361 |     /// 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:71:24
   |
71 | /// 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 5.39s
   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.19.1 (/workspace/src)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 23.23s
     Running unittests src/lib.rs (/workspace/cache/debug/deps/radicle_ci_broker-a50b1fc557d492ab)

running 85 tests
test adapter::test::adapter_does_not_exist ... ok
test adapter::test::adapter_ends_ok_before_second_message ... ok
test adapter::test::adapter_first_message_isnt_triggered ... ok
test adapter::test::adapter_exits_nonzero ... ok
test adapter::test::adapter_has_bad_interpreter ... ok
test adapter::test::adapter_is_killed_after_first_message ... 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_not_executable ... ok
test adapter::test::adapter_outputs_too_many_messages ... ok
test adapter::test::adapter_reports_failure ... ok
test adapter::test::adapter_produces_as_bad_message ... 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 ci_event::test_parsed_ref::branch ... ok
test ci_event::test_parsed_ref::patch ... ok
test ci_event::test_parsed_ref::tag ... 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 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 broker::test::executes_adapter ... 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 timeoutcmd::tests::bin_true ... ok
test timeoutcmd::tests::hello_world ... ok
test timeoutcmd::tests::hello_world_to_stderr ... ok
test msg::trigger_from_ci_event_tests::trigger_push_from_branch_updated ... ok
test timeoutcmd::tests::kill ... ok
test timeoutcmd::tests::pipe_through_cat ... ok
test timeoutcmd::tests::kill_stderr ... 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. 85 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 14.61s

     Running unittests src/bin/cib.rs (/workspace/cache/debug/deps/cib-5202b5c03501c4d6)

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-3c2fdc8062b5c991)

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-bceedcd5f2c1d586)

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-26d1d43aeeaaf371)

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-4a385c9f1a206642)

running 70 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 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_branchcreated ... ok
test filter_predicate_branch ... ok
test filter_predicate_branchupdated ... ok
test filter_predicate_branchdeleted ... 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 filter_recorded_ci_events ... ok
test gives_helpful_error_message_if_it_doesn_t_understand_its_configuration_file ... ok
test gives_helpful_error_message_if_node_socket_can_t_be_found ... ok
test handles_adapter_failing_on_a_successful_run ... ok
test handles_adapter_failing_on_a_failed_run ... ok
test insert_events_into_queue ... 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 insert_many_events_into_queue ... ok
test set_up_a_node ... ok
test shows_adapter_specification ... ok
test shows_config_as_json ... ok
test shuts_down_when_requested ... ok
test runs_adapters_for_all_matching_triggers ... ok
test stops_if_the_node_connection_breaks ... ok
test smoke_test__runs_adapter ... ok
test update_and_show_information_about_run_to_running ... ok
test we_can_run_rad ... ok

test result: ok. 70 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 141.19s

   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 6.16s

+ subplot docgen ci-broker.subplot -o doc/ci-broker.html
 INFO Starting Subplot
 INFO Subplot finished successfully
+ subplot docgen doc/userguide.subplot -o doc/userguide.html
 INFO Starting Subplot
 INFO Subplot finished successfully
+ make -C doc
make: Entering directory '/workspace/src/doc'
./messages.sh > messages.md
subplot docgen --date "Version: $(git describe --long --dirty)" architecture.subplot -o architecture.html
fatal: No names found, cannot describe anything.
 INFO Starting Subplot
 INFO Subplot finished successfully
make: Leaving directory '/workspace/src/doc'
+ cp doc/architecture.html doc/ci-broker.html doc/userguide.html /workspace/artifacts/.
RUN: Action finished OK
RUN: Action Custom(
    Custom {
        name: "dch",
        args: {
            "debfullname": String("Lars Wirzenius"),
            "debemail": String("liw@liw.fi"),
        },
    },
)
[2025-08-19T14:24:17Z DEBUG ambient_ci::action] Plan::execute: Custom(
        Custom {
            name: "dch",
            args: {
                "debfullname": String("Lars Wirzenius"),
                "debemail": String("liw@liw.fi"),
            },
        },
    )
custom: source=/workspace/src
custom: exe=".ambient/dch" exists=false
HEAD is now at b3898f65 fix: make reading child output not block forever, if there is none
Removing doc/architecture.html
Removing doc/ci-broker.html
Removing doc/messages.md
Removing doc/userguide.html
custom action "dch" exit code Some(0)
RUN: Action finished OK
RUN: Action Deb
[2025-08-19T14:24:18Z DEBUG ambient_ci::action] Plan::execute: Deb
SPAWN: argv=["/bin/bash", "-c", "#!/bin/bash\nset -xeuo pipefail\n\necho \"PATH at start: $PATH\"\nexport PATH=\"/root/.cargo/bin:$PATH\"\nexport CARGO_HOME=/workspace/deps\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\n/bin/env\n\ncommand -v cargo\ncommand -v rustc\n\ncargo --version\nrustc --version\n\n# Get name and version of source package.\nname=\"$(dpkg-parsechangelog -SSource)\"\nversion=\"$(dpkg-parsechangelog -SVersion)\"\n\n# Get upstream version: everything before the last dash.\nuv=\"$(echo \"$version\" | sed 's/-[^-]*$//')\"\n\n# Files that will be created.\narch=\"$(dpkg --print-architecture)\"\norig=\"../${name}_${uv}.orig.tar.xz\"\ndeb=\"../${name}_${version}_${arch}.deb\"\nchanges=\"../${name}_${version}_${arch}.changes\"\n\n# Create \"upstream tarball\".\ngit archive HEAD | xz >\"$orig\"\n\n# Build package.\ndpkg-buildpackage -us -uc\n\n# Dump some information to make it easier to visually verify\n# everything looks OK. Also, test the package with the lintian tool.\n\nls -l ..\nfor x in ../*.deb; do dpkg -c \"$x\"; done\n# FIXME: disabled while this prevents radicle-native-ci deb from being built.\n# lintian -i --allow-root --fail-on warning ../*.changes\n\n# Move files to artifacts directory.\nmv ../*_* /workspace/artifacts\n        "]
       cwd=/workspace/src (exists? true)
       extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
+ echo 'PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ export CARGO_HOME=/workspace/deps
+ CARGO_HOME=/workspace/deps
+ export DEBEMAIL=liw@liw.fi
+ DEBEMAIL=liw@liw.fi
+ export 'DEBFULLNAME=Lars Wirzenius'
+ DEBFULLNAME='Lars Wirzenius'
+ /bin/env
DEBFULLNAME=Lars Wirzenius
CARGO_TARGET_DIR=/workspace/cache
PWD=/workspace/src
SYSTEMD_EXEC_PID=276
LANG=C.UTF-8
CARGO_HOME=/workspace/deps
DEBEMAIL=liw@liw.fi
INVOCATION_ID=50293d96585443749e94264be1d4b0bb
SHLVL=2
JOURNAL_STREAM=8:14473
PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
OLDPWD=/
_=/bin/env
+ command -v cargo
/root/.cargo/bin/cargo
+ command -v rustc
/root/.cargo/bin/rustc
+ cargo --version
cargo 1.89.0 (c24e10642 2025-06-23)
+ rustc --version
rustc 1.89.0 (29483883e 2025-08-04)
++ dpkg-parsechangelog -SSource
+ name=radicle-ci-broker
++ dpkg-parsechangelog -SVersion
+ version=0.19.1.ci20250819T142417-1
++ sed 's/-[^-]*$//'
++ echo 0.19.1.ci20250819T142417-1
+ uv=0.19.1.ci20250819T142417
++ dpkg --print-architecture
+ arch=amd64
+ orig=../radicle-ci-broker_0.19.1.ci20250819T142417.orig.tar.xz
+ deb=../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.deb
+ changes=../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.changes
+ git archive HEAD
+ xz
+ dpkg-buildpackage -us -uc
dpkg-buildpackage: info: source package radicle-ci-broker
dpkg-buildpackage: info: source version 0.19.1.ci20250819T142417-1
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by "Lars Wirzenius" <"liw@liw.fi">
dpkg-buildpackage: info: host architecture amd64
 dpkg-source --before-build .
 debian/rules clean
dh clean
   dh_auto_clean
   dh_clean
 dpkg-source -b .
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building radicle-ci-broker using existing ./radicle-ci-broker_0.19.1.ci20250819T142417.orig.tar.xz
dpkg-source: info: building radicle-ci-broker in radicle-ci-broker_0.19.1.ci20250819T142417-1.debian.tar.xz
dpkg-source: info: building radicle-ci-broker in radicle-ci-broker_0.19.1.ci20250819T142417-1.dsc
 debian/rules build
dh build
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure
   debian/rules override_dh_auto_build
make[1]: Entering directory '/workspace/src'
true
make[1]: Leaving directory '/workspace/src'
   debian/rules override_dh_auto_test
make[1]: Entering directory '/workspace/src'
echo tests are disabled, for now
tests are disabled, for now
make[1]: Leaving directory '/workspace/src'
   create-stamp debian/debhelper-build-stamp
 debian/rules binary
dh binary
   dh_testroot
   dh_prep
   debian/rules override_dh_auto_install
make[1]: Entering directory '/workspace/src'
cargo install --offline --locked --path=. --root=debian/radicle-ci-broker/usr --bin cib --bin cibtool
  Installing radicle-ci-broker v0.19.1 (/workspace/src)
   Compiling radicle-ci-broker v0.19.1 (/workspace/src)
    Finished `release` profile [optimized] target(s) in 30.90s
  Installing debian/radicle-ci-broker/usr/bin/cib
  Installing debian/radicle-ci-broker/usr/bin/cibtool
   Installed package `radicle-ci-broker v0.19.1 (/workspace/src)` (executables `cib`, `cibtool`)
warning: be sure to add `debian/radicle-ci-broker/usr/bin` to your PATH to be able to run the installed binaries
find debian -name '.crates*.*' -delete
make[1]: Leaving directory '/workspace/src'
   dh_installdocs
   dh_installchangelogs
   dh_installman
   dh_lintian
   dh_perl
   dh_link
   dh_strip_nondeterminism
   dh_compress
   dh_fixperms
   dh_missing
   dh_strip
   dh_makeshlibs
   dh_shlibdeps
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/radicle-ci-broker/usr/bin/cibtool debian/radicle-ci-broker/usr/bin/cib were not linked against libm.so.6 (they use none of the library's symbols)
   dh_installdeb
   dh_gencontrol
   dh_md5sums
   dh_builddeb
dpkg-deb: building package 'radicle-ci-broker-dbgsym' in '../radicle-ci-broker-dbgsym_0.19.1.ci20250819T142417-1_amd64.deb'.
dpkg-deb: building package 'radicle-ci-broker' in '../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.deb'.
 dpkg-genbuildinfo -O../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.buildinfo
 dpkg-genchanges -O../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.changes
dpkg-genchanges: info: including full source code in upload
 dpkg-source --after-build .
dpkg-buildpackage: info: full upload (original source is included)
+ ls -l ..
total 6768
drwxr-xr-x  2 root root    4096 Aug 19 14:24 artifacts
drwxr-xr-x  6 root root    4096 Aug 13 05:25 cache
drwxr-xr-x  3 root root    4096 Aug 19 14:24 deps
-rw-r--r--  1 root root  680788 Aug 19 14:24 radicle-ci-broker-dbgsym_0.19.1.ci20250819T142417-1_amd64.deb
-rw-r--r--  1 root root    2304 Aug 19 14:24 radicle-ci-broker_0.19.1.ci20250819T142417-1.debian.tar.xz
-rw-r--r--  1 root root    1078 Aug 19 14:24 radicle-ci-broker_0.19.1.ci20250819T142417-1.dsc
-rw-r--r--  1 root root    6326 Aug 19 14:25 radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.buildinfo
-rw-r--r--  1 root root    2634 Aug 19 14:25 radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.changes
-rw-r--r--  1 root root 6073580 Aug 19 14:25 radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.deb
-rw-r--r--  1 root root  134840 Aug 19 14:24 radicle-ci-broker_0.19.1.ci20250819T142417.orig.tar.xz
drwxr-xr-x 10 root root    4096 Aug 19 14:24 src
+ for x in ../*.deb
+ dpkg -c ../radicle-ci-broker-dbgsym_0.19.1.ci20250819T142417-1_amd64.deb
drwxr-xr-x root/root         0 2025-08-19 14:24 ./
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/lib/
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/lib/debug/
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/lib/debug/.build-id/46/
-rw-r--r-- root/root   2667136 2025-08-19 14:24 ./usr/lib/debug/.build-id/46/b254dbd208744ed952fb775c42090903870be3.debug
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/lib/debug/.build-id/a4/
-rw-r--r-- root/root   2909968 2025-08-19 14:24 ./usr/lib/debug/.build-id/a4/c999aa8b975a7f7894bbbfa09f385c11cce734.debug
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/doc/
lrwxrwxrwx root/root         0 2025-08-19 14:24 ./usr/share/doc/radicle-ci-broker-dbgsym -> radicle-ci-broker
+ for x in ../*.deb
+ dpkg -c ../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.deb
drwxr-xr-x root/root         0 2025-08-19 14:24 ./
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/bin/
-rwxr-xr-x root/root  10724232 2025-08-19 14:24 ./usr/bin/cib
-rwxr-xr-x root/root  11456824 2025-08-19 14:24 ./usr/bin/cibtool
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/doc/
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/doc/radicle-ci-broker/
-rw-r--r-- root/root       621 2025-08-19 14:24 ./usr/share/doc/radicle-ci-broker/changelog.Debian.gz
-rw-r--r-- root/root       396 2025-08-19 14:24 ./usr/share/doc/radicle-ci-broker/copyright
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/lintian/
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       120 2025-08-19 14:24 ./usr/share/lintian/overrides/radicle-ci-broker
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/man/
drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/man/man1/
-rw-r--r-- root/root       298 2025-08-19 14:24 ./usr/share/man/man1/cib.1.gz
-rw-r--r-- root/root       277 2025-08-19 14:24 ./usr/share/man/man1/cibtool.1.gz
+ mv ../radicle-ci-broker-dbgsym_0.19.1.ci20250819T142417-1_amd64.deb ../radicle-ci-broker_0.19.1.ci20250819T142417-1.debian.tar.xz ../radicle-ci-broker_0.19.1.ci20250819T142417-1.dsc ../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.buildinfo ../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.changes ../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.deb ../radicle-ci-broker_0.19.1.ci20250819T142417.orig.tar.xz /workspace/artifacts
RUN: Action finished OK
RUN: Action TarCreate {
    archive: "/dev/vde",
    directory: "/workspace/cache",
}
[2025-08-19T14:25:04Z DEBUG ambient_ci::action] Plan::execute: TarCreate {
        archive: "/dev/vde",
        directory: "/workspace/cache",
    }
[2025-08-19T14:25:04Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder {
        filename: Some(
            "/dev/vde",
        ),
        root: Some(
            "/workspace/cache",
        ),
        size: None,
    }
[2025-08-19T14:25:04Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vde; exists? true
[2025-08-19T14:25:04Z TRACE ambient_ci::vdrive] create archive file /dev/vde
[2025-08-19T14:25:04Z TRACE ambient_ci::vdrive] directory /workspace/cache exists? true
[2025-08-19T14:25:04Z TRACE ambient_ci::vdrive] add contents of /workspace/cache as .
[2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] created virtual drive /dev/vde
RUN: Action finished OK
RUN: Action TarCreate {
    archive: "/dev/vdd",
    directory: "/workspace/artifacts",
}
[2025-08-19T14:25:18Z DEBUG ambient_ci::action] Plan::execute: TarCreate {
        archive: "/dev/vdd",
        directory: "/workspace/artifacts",
    }
[2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder {
        filename: Some(
            "/dev/vdd",
        ),
        root: Some(
            "/workspace/artifacts",
        ),
        size: None,
    }
[2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vdd; exists? true
[2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] create archive file /dev/vdd
[2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] directory /workspace/artifacts exists? true
[2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] add contents of /workspace/artifacts as .
[2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] created virtual drive /dev/vdd
RUN: Action finished OK
ambient-execute-plan ends
EXIT CODE: 0
[2025-08-19T14:25:26Z INFO  ambient] ambient ends successfully

Trigger message

{
  "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": "931291ad19d57ad5569d201558b54e74d4c59e1f",
    "author": {
      "id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
      "alias": "liw"
    },
    "title": "build(Makefile): limit duration of test runs",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "ac9261bb8e669cee9562e29da44a7e0308dcc490",
    "after": "b3898f653ff65b6c423096ce4a2c34b7aa22a7a8",
    "commits": [
      "b3898f653ff65b6c423096ce4a2c34b7aa22a7a8",
      "3f98488107f54f2eaaa475b2629785fa319a34b8"
    ],
    "target": "ac9261bb8e669cee9562e29da44a7e0308dcc490",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "931291ad19d57ad5569d201558b54e74d4c59e1f",
        "author": {
          "id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
          "alias": "liw"
        },
        "description": "Sometimes I accidentally make a test that never finishes and uses all\nthe CPU and memory available. Killing that manually can be impossible,\nbecause switching focus to the right terminal requires more CPU and\nmemory than the kernel can spare.\n\nSigned-off-by: Lars Wirzenius <liw@liw.fi>\n\n\nfix: make reading child output not block forever, if there is none\n\nSpawn a thread that sleeps until timeout, then notifies the\nRealtimeLines condition variable, which wakes up the reader thread and\nlets it eventually finish.\n\nSigned-off-by: Lars Wirzenius <liw@liw.fi>",
        "base": "ac9261bb8e669cee9562e29da44a7e0308dcc490",
        "oid": "b3898f653ff65b6c423096ce4a2c34b7aa22a7a8",
        "timestamp": 1755613130
      }
    ]
  }
}

Ambient stdout

[2025-08-19T14:18:52Z INFO  ambient] ambient starts
[2025-08-19T14:18:52Z DEBUG ambient] load default configuration file /home/_rad/.config/ambient/config.yaml if it exists
[2025-08-19T14:18:52Z DEBUG ambient] complete configuration: Config {
        tmpdir: "/srv/tmp",
        image_store: "/home/_rad/.local/state/ambient-ci/images",
        projects: "/home/_rad/ambient-projects.yaml",
        state: "/srv/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(
            10000000000,
        ),
        cache_max_size: Byte(
            50000000000,
        ),
        qemu: QemuConfig {
            cpus: 4,
            memory: Byte(
                8000000000,
            ),
            kvm_binary: "/usr/bin/kvm",
            ovmf_vars_file: "/usr/share/ovmf/OVMF.fd",
            ovmf_code_file: "/usr/share/ovmf/OVMF.fd",
        },
    }
[2025-08-19T14:18:52Z DEBUG ambient] configuration: Config {
        tmpdir: "/srv/tmp",
        image_store: "/home/_rad/.local/state/ambient-ci/images",
        projects: "/home/_rad/ambient-projects.yaml",
        state: "/srv/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(
            10000000000,
        ),
        cache_max_size: Byte(
            50000000000,
        ),
        qemu: QemuConfig {
            cpus: 4,
            memory: Byte(
                8000000000,
            ),
            kvm_binary: "/usr/bin/kvm",
            ovmf_vars_file: "/usr/share/ovmf/OVMF.fd",
            ovmf_code_file: "/usr/share/ovmf/OVMF.fd",
        },
    }
[2025-08-19T14:18:52Z DEBUG ambient_ci::project] load project state from /srv/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/meta.yaml
[2025-08-19T14:18:52Z DEBUG ambient_ci::run] latest commit: "ac9261bb8e669cee9562e29da44a7e0308dcc490"
[2025-08-19T14:18:52Z DEBUG ambient_ci::run] is a git repository
[2025-08-19T14:18:52Z DEBUG ambient_ci::run] git repository is clean
[2025-08-19T14:18:52Z DEBUG ambient_ci::run] current (HEAD) commit: b3898f653ff65b6c423096ce4a2c34b7aa22a7a8
[2025-08-19T14:18:52Z DEBUG ambient_ci::run] no dry run requested
[2025-08-19T14:18:52Z DEBUG ambient_ci::run] forced run requested
[2025-08-19T14:18:52Z DEBUG ambient_ci::run] run? true
[2025-08-19T14:18:52Z INFO  ambient_ci::run] project rad:zwTxygwuz5LDGBq255RA2CbNGrz8: running CI
[2025-08-19T14:18:52Z DEBUG ambient_ci::run] Executing pre-plan steps
[2025-08-19T14:18:52Z DEBUG ambient_ci::action] Plan::execute: CargoFetch {
        sourcedir: "/tmp/.tmpFrm3NN/src",
        dependenciesdir: "/srv/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/dependencies",
    }
SPAWN: argv=["env", "CARGO_HOME=/srv/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/dependencies", "cargo", "fetch", "--locked"]
       cwd=/tmp/.tmpFrm3NN/src (exists? true)
       extra_env=[]
[2025-08-19T14:18:53Z DEBUG ambient_ci::run] create virtual drive /srv/tmp/.tmp6C8oGJ/src.tar
[2025-08-19T14:18:53Z DEBUG ambient_ci::run] create virtual drive /srv/tmp/.tmp6C8oGJ/deps.tar
[2025-08-19T14:19:03Z DEBUG ambient_ci::run] create_executor_vdrive: executor="/usr/bin/ambient-execute-plan"
[2025-08-19T14:19:03Z 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-08-19T14:19:03Z DEBUG ambient_ci::run] executor bin /usr/bin/ambient-execute-plan
[2025-08-19T14:19:03Z DEBUG ambient_ci::run] copying /usr/bin/ambient-execute-plan to /srv/tmp/.tmp6C8oGJ/ambient-execute-plan/run-ci
[2025-08-19T14:19:03Z DEBUG ambient_ci::run] copy OK: true
[2025-08-19T14:19:03Z DEBUG ambient_ci::run] create virtual drive /srv/tmp/.tmp6C8oGJ/executor.tar
[2025-08-19T14:19:32Z DEBUG ambient_ci::project] removing run log file /srv/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log
[2025-08-19T14:19:32Z DEBUG ambient_ci::project] statedir is /srv/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8, exists? true
[2025-08-19T14:19:32Z DEBUG ambient_ci::project] creating run log file /srv/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log
[2025-08-19T14:19:32Z DEBUG ambient_ci::project] created run log file /srv/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log OK
[2025-08-19T14:19:32Z DEBUG ambient_ci::cloud_init] with_hostname called: "ambient"
[2025-08-19T14:19:32Z DEBUG ambient_ci::cloud_init] with_runcmd called: "echo xyzzy > /dev/ttyS1"
[2025-08-19T14:19:32Z 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-08-19T14:19:32Z DEBUG ambient_ci::cloud_init] with_runcmd called: "poweroff"
[2025-08-19T14:19:32Z 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-08-19T14:19:32Z DEBUG ambient_ci::qemu] run QEMU
[2025-08-19T14:19:32Z DEBUG ambient_ci::qemu] create copy-on-write image and UEFI vars file
[2025-08-19T14:19:32Z DEBUG ambient_ci::qemu_utils] qemu-img create /srv/tmp/.tmpW0ZqVg/.tmplIlinW/vm.qcow2 backing on /home/_rad/ambient.qcow2
[2025-08-19T14:19:32Z DEBUG ambient_ci::qemu] create cloud-init ISO file
[2025-08-19T14:19:32Z 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-08-19T14:19:32Z DEBUG ambient_ci::cloud_init] write /tmp/.tmpVCtfzA/meta-data
[2025-08-19T14:19:32Z DEBUG ambient_ci::cloud_init] write /tmp/.tmpVCtfzA/user-data
[2025-08-19T14:19:32Z DEBUG ambient_ci::qemu] set console log file to /srv/tmp/.tmpW0ZqVg/.tmplIlinW/console.log
[2025-08-19T14:19:32Z DEBUG ambient_ci::util] create file /srv/tmp/.tmpW0ZqVg/.tmplIlinW/console.log
[2025-08-19T14:19:32Z DEBUG ambient_ci::qemu] set run file to /srv/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log
[2025-08-19T14:19:32Z DEBUG ambient_ci::util] create file /srv/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/run.log
[2025-08-19T14:19:32Z DEBUG ambient_ci::qemu] run QEMU: QemuArgs {
        args: [
            "-m",
            "7629",
            "-smp",
            "cpus=4",
            "-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:/srv/tmp/.tmpW0ZqVg/.tmplIlinW/console.log",
            "-serial",
            "file:/srv/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=/srv/tmp/.tmpW0ZqVg/.tmplIlinW/vars.fd",
            "-drive",
            "format=qcow2,if=virtio,file=/srv/tmp/.tmpW0ZqVg/.tmplIlinW/vm.qcow2",
            "-drive",
            "format=raw,if=virtio,file=/srv/tmp/.tmp6C8oGJ/executor.tar,readonly=on",
            "-cdrom",
            "/srv/tmp/.tmpW0ZqVg/.tmplIlinW/cloud_init.iso",
            "-drive",
            "format=raw,if=virtio,file=/srv/tmp/.tmp6C8oGJ/src.tar,readonly=on",
            "-drive",
            "format=raw,if=virtio,file=/srv/tmp/.tmp6C8oGJ/artifacts.tar",
            "-drive",
            "format=raw,if=virtio,file=/srv/tmp/.tmp6C8oGJ/cache.tar",
            "-drive",
            "format=raw,if=virtio,file=/srv/tmp/.tmp6C8oGJ/deps.tar,readonly=on",
            "-nodefaults",
            "-no-user-config",
        ],
    }
[2025-08-19T14:25:19Z DEBUG ambient_ci::qemu] QEMU finished OK
[2025-08-19T14:25:19Z DEBUG ambient_ci::qemu] run log:
    --------------------==========
    [2025-08-19T14:19:43Z TRACE ambient_execute_plan] ambient-execute-plan starts
    [2025-08-19T14:19:43Z DEBUG ambient_execute_plan] ambient-execute-plan starts
    [2025-08-19T14:19:43Z INFO  ambient_execute_plan] ambient-execute-plan starts
    [2025-08-19T14:19:43Z WARN  ambient_execute_plan] ambient-execute-plan starts
    [2025-08-19T14:19:43Z ERROR ambient_execute_plan] ambient-execute-plan 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
    
    
    RUN: Action Mkdir {
        pathname: "/workspace",
    }
    [2025-08-19T14:19:43Z DEBUG ambient_ci::action] Plan::execute: Mkdir {
            pathname: "/workspace",
        }
    RUN: Action finished OK
    RUN: Action Mkdir {
        pathname: "/workspace/artifacts",
    }
    [2025-08-19T14:19:43Z DEBUG ambient_ci::action] Plan::execute: Mkdir {
            pathname: "/workspace/artifacts",
        }
    RUN: Action finished OK
    RUN: Action TarExtract {
        archive: "/dev/vdc",
        directory: "/workspace/src",
    }
    [2025-08-19T14:19:43Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
            archive: "/dev/vdc",
            directory: "/workspace/src",
        }
    [2025-08-19T14:19:43Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src
    [2025-08-19T14:19:43Z TRACE ambient_ci::vdrive] extraction OK
    RUN: Action finished OK
    RUN: Action TarExtract {
        archive: "/dev/vdf",
        directory: "/workspace/deps",
    }
    [2025-08-19T14:19:43Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
            archive: "/dev/vdf",
            directory: "/workspace/deps",
        }
    [2025-08-19T14:19:43Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps
    [2025-08-19T14:19:45Z TRACE ambient_ci::vdrive] extraction OK
    RUN: Action finished OK
    RUN: Action TarExtract {
        archive: "/dev/vde",
        directory: "/workspace/cache",
    }
    [2025-08-19T14:19:45Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
            archive: "/dev/vde",
            directory: "/workspace/cache",
        }
    [2025-08-19T14:19:45Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache
    [2025-08-19T14:20:43Z TRACE ambient_ci::vdrive] extraction OK
    RUN: Action finished OK
    RUN: Action Spawn {
        argv: [
            "find",
            "/workspace",
            "-maxdepth",
            "2",
            "-ls",
        ],
    }
    [2025-08-19T14:20:43Z DEBUG ambient_ci::action] Plan::execute: Spawn {
            argv: [
                "find",
                "/workspace",
                "-maxdepth",
                "2",
                "-ls",
            ],
        }
    SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
           cwd=/workspace/src (exists? true)
           extra_env=[]
      3932161      4 drwxr-xr-x   6 root     root         4096 Aug 19 14:19 /workspace
      3932162      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:19 /workspace/artifacts
      3932338      4 drwxr-xr-x   3 root     root         4096 Aug 19 14:18 /workspace/deps
      3932340    112 -rw-r--r--   1 root     root       114688 Aug 19 14:18 /workspace/deps/.global-cache
      3932339      0 -rw-r--r--   1 root     root            0 Aug 13 05:20 /workspace/deps/.package-cache-mutate
      3932341      0 -rw-r--r--   1 root     root            0 Aug 13 05:20 /workspace/deps/.package-cache
      3932342      4 drwxr-xr-x   5 root     root         4096 Aug 13 05:20 /workspace/deps/registry
      3932163      4 drwxr-xr-x  10 root     root         4096 Aug 19 14:18 /workspace/src
      3932165      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:18 /workspace/src/.radicle
      3932222     36 -rw-r--r--   1 root     root        34789 Aug 19 14:18 /workspace/src/NEWS.md
      3932327     92 -rw-r--r--   1 root     root        90113 Aug 19 14:18 /workspace/src/Cargo.lock
      3932328      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:18 /workspace/src/doc
      3932235      4 -rw-r--r--   1 root     root          732 Aug 19 14:18 /workspace/src/ci-broker.yaml
      3932240      4 -rw-r--r--   1 root     root         1696 Aug 19 14:18 /workspace/src/Cargo.toml
      3932238      8 -rw-r--r--   1 root     root         5951 Aug 19 14:18 /workspace/src/flake.nix
      3932325      8 -rw-r--r--   1 root     root         6528 Aug 19 14:18 /workspace/src/flake.lock
      3932323     12 -rw-r--r--   1 root     root         9723 Aug 19 14:18 /workspace/src/LICENSE-APACHE
      3932239      4 -rw-r--r--   1 root     root           44 Aug 19 14:18 /workspace/src/.gitignore
      3932169      4 -rw-r--r--   1 root     root         1079 Aug 19 14:18 /workspace/src/LICENSE-MIT
      3932215     92 -rw-r--r--   1 root     root        90815 Aug 19 14:18 /workspace/src/ci-broker.md
      3932220      4 -rw-r--r--   1 root     root          257 Aug 19 14:18 /workspace/src/ci-broker.subplot
      3932326      4 -rw-r--r--   1 root     root         1188 Aug 19 14:18 /workspace/src/CONTRIBUTING.md
      3932324      4 -rw-r--r--   1 root     root          334 Aug 19 14:18 /workspace/src/Makefile
      3932241      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:18 /workspace/src/tests
      3932216      4 -rw-r--r--   1 root     root          386 Aug 19 14:18 /workspace/src/cibtool.1
      3932243      4 drwxr-xr-x   8 root     root         4096 Aug 19 14:18 /workspace/src/.git
      3932221      4 -rw-r--r--   1 root     root           10 Aug 19 14:18 /workspace/src/.envrc
      3932223      4 drwxr-xr-x   3 root     root         4096 Aug 19 14:18 /workspace/src/debian
      3932236      8 -rw-r--r--   1 root     root         4796 Aug 19 14:18 /workspace/src/README.md
      3932170      4 drwxr-xr-x   4 root     root         4096 Aug 19 14:18 /workspace/src/src
      3932167      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:18 /workspace/src/.ambient
      3932237      4 -rw-r--r--   1 root     root          970 Aug 19 14:18 /workspace/src/build.rs
      3932164      4 -rw-r--r--   1 root     root          440 Aug 19 14:18 /workspace/src/cib.1
      3932217      4 drwxr-xr-x   2 root     root         4096 Aug 19 14:18 /workspace/src/.cargo
      3955350      4 drwxr-xr-x   6 root     root         4096 Aug 13 05:25 /workspace/cache
      3963446      4 drwxr-xr-x   7 root     root         4096 Aug 18 16:09 /workspace/cache/release
      3967408      4 drwxr-xr-x  12 root     root         4096 Aug 18 16:06 /workspace/cache/doc
      3955352      4 drwxr-xr-x   7 root     root         4096 Aug 18 16:09 /workspace/cache/debug
      3955351      4 drwxr-xr-x   2 root     root         4096 Aug 13 05:20 /workspace/cache/tmp
      3963445      4 -rw-r--r--   1 root     root          218 Aug 13 05:21 /workspace/cache/.rustdoc_fingerprint.json
      3967407      4 -rw-r--r--   1 root     root         1034 Aug 18 16:06 /workspace/cache/.rustc_info.json
    RUN: Action finished OK
    RUN: Action CargoFmt
    [2025-08-19T14:20:44Z DEBUG ambient_ci::action] Plan::execute: CargoFmt
    SPAWN: argv=["cargo", "fmt", "--check"]
           cwd=/workspace/src (exists? true)
           extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
    RUN: Action finished OK
    RUN: Action CargoClippy
    [2025-08-19T14:20:45Z DEBUG ambient_ci::action] Plan::execute: CargoClippy
    SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
           cwd=/workspace/src (exists? true)
           extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
       Compiling radicle-ci-broker v0.19.1 (/workspace/src)
        Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.36s
    RUN: Action finished OK
    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-08-19T14:20:55Z DEBUG ambient_ci::action] Plan::execute: 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",
        }
    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)
           extra_env=[]
    + 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:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    + PATH=/root/.cargo/bin:/root/.radicle/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.19.1 (/workspace/src)
     Documenting radicle-ci-broker v0.19.1 (/workspace/src)
    warning: unresolved link to `RunningProcess`
       --> src/adapter.rs:361:44
        |
    361 |     /// 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:71:24
       |
    71 | /// 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 5.39s
       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.19.1 (/workspace/src)
        Finished `test` profile [unoptimized + debuginfo] target(s) in 23.23s
         Running unittests src/lib.rs (/workspace/cache/debug/deps/radicle_ci_broker-a50b1fc557d492ab)
    
    running 85 tests
    test adapter::test::adapter_does_not_exist ... ok
    test adapter::test::adapter_ends_ok_before_second_message ... ok
    test adapter::test::adapter_first_message_isnt_triggered ... ok
    test adapter::test::adapter_exits_nonzero ... ok
    test adapter::test::adapter_has_bad_interpreter ... ok
    test adapter::test::adapter_is_killed_after_first_message ... 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_not_executable ... ok
    test adapter::test::adapter_outputs_too_many_messages ... ok
    test adapter::test::adapter_reports_failure ... ok
    test adapter::test::adapter_produces_as_bad_message ... 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 ci_event::test_parsed_ref::branch ... ok
    test ci_event::test_parsed_ref::patch ... ok
    test ci_event::test_parsed_ref::tag ... 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 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 broker::test::executes_adapter ... 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 timeoutcmd::tests::bin_true ... ok
    test timeoutcmd::tests::hello_world ... ok
    test timeoutcmd::tests::hello_world_to_stderr ... ok
    test msg::trigger_from_ci_event_tests::trigger_push_from_branch_updated ... ok
    test timeoutcmd::tests::kill ... ok
    test timeoutcmd::tests::pipe_through_cat ... ok
    test timeoutcmd::tests::kill_stderr ... 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. 85 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 14.61s
    
         Running unittests src/bin/cib.rs (/workspace/cache/debug/deps/cib-5202b5c03501c4d6)
    
    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-3c2fdc8062b5c991)
    
    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-bceedcd5f2c1d586)
    
    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-26d1d43aeeaaf371)
    
    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-4a385c9f1a206642)
    
    running 70 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 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_branchcreated ... ok
    test filter_predicate_branch ... ok
    test filter_predicate_branchupdated ... ok
    test filter_predicate_branchdeleted ... 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 filter_recorded_ci_events ... ok
    test gives_helpful_error_message_if_it_doesn_t_understand_its_configuration_file ... ok
    test gives_helpful_error_message_if_node_socket_can_t_be_found ... ok
    test handles_adapter_failing_on_a_successful_run ... ok
    test handles_adapter_failing_on_a_failed_run ... ok
    test insert_events_into_queue ... 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 insert_many_events_into_queue ... ok
    test set_up_a_node ... ok
    test shows_adapter_specification ... ok
    test shows_config_as_json ... ok
    test shuts_down_when_requested ... ok
    test runs_adapters_for_all_matching_triggers ... ok
    test stops_if_the_node_connection_breaks ... ok
    test smoke_test__runs_adapter ... ok
    test update_and_show_information_about_run_to_running ... ok
    test we_can_run_rad ... ok
    
    test result: ok. 70 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 141.19s
    
       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 6.16s
    
    + subplot docgen ci-broker.subplot -o doc/ci-broker.html
     INFO Starting Subplot
     INFO Subplot finished successfully
    + subplot docgen doc/userguide.subplot -o doc/userguide.html
     INFO Starting Subplot
     INFO Subplot finished successfully
    + make -C doc
    make: Entering directory '/workspace/src/doc'
    ./messages.sh > messages.md
    subplot docgen --date "Version: $(git describe --long --dirty)" architecture.subplot -o architecture.html
    fatal: No names found, cannot describe anything.
     INFO Starting Subplot
     INFO Subplot finished successfully
    make: Leaving directory '/workspace/src/doc'
    + cp doc/architecture.html doc/ci-broker.html doc/userguide.html /workspace/artifacts/.
    RUN: Action finished OK
    RUN: Action Custom(
        Custom {
            name: "dch",
            args: {
                "debfullname": String("Lars Wirzenius"),
                "debemail": String("liw@liw.fi"),
            },
        },
    )
    [2025-08-19T14:24:17Z DEBUG ambient_ci::action] Plan::execute: Custom(
            Custom {
                name: "dch",
                args: {
                    "debfullname": String("Lars Wirzenius"),
                    "debemail": String("liw@liw.fi"),
                },
            },
        )
    custom: source=/workspace/src
    custom: exe=".ambient/dch" exists=false
    HEAD is now at b3898f65 fix: make reading child output not block forever, if there is none
    Removing doc/architecture.html
    Removing doc/ci-broker.html
    Removing doc/messages.md
    Removing doc/userguide.html
    custom action "dch" exit code Some(0)
    RUN: Action finished OK
    RUN: Action Deb
    [2025-08-19T14:24:18Z DEBUG ambient_ci::action] Plan::execute: Deb
    SPAWN: argv=["/bin/bash", "-c", "#!/bin/bash\nset -xeuo pipefail\n\necho \"PATH at start: $PATH\"\nexport PATH=\"/root/.cargo/bin:$PATH\"\nexport CARGO_HOME=/workspace/deps\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\n/bin/env\n\ncommand -v cargo\ncommand -v rustc\n\ncargo --version\nrustc --version\n\n# Get name and version of source package.\nname=\"$(dpkg-parsechangelog -SSource)\"\nversion=\"$(dpkg-parsechangelog -SVersion)\"\n\n# Get upstream version: everything before the last dash.\nuv=\"$(echo \"$version\" | sed 's/-[^-]*$//')\"\n\n# Files that will be created.\narch=\"$(dpkg --print-architecture)\"\norig=\"../${name}_${uv}.orig.tar.xz\"\ndeb=\"../${name}_${version}_${arch}.deb\"\nchanges=\"../${name}_${version}_${arch}.changes\"\n\n# Create \"upstream tarball\".\ngit archive HEAD | xz >\"$orig\"\n\n# Build package.\ndpkg-buildpackage -us -uc\n\n# Dump some information to make it easier to visually verify\n# everything looks OK. Also, test the package with the lintian tool.\n\nls -l ..\nfor x in ../*.deb; do dpkg -c \"$x\"; done\n# FIXME: disabled while this prevents radicle-native-ci deb from being built.\n# lintian -i --allow-root --fail-on warning ../*.changes\n\n# Move files to artifacts directory.\nmv ../*_* /workspace/artifacts\n        "]
           cwd=/workspace/src (exists? true)
           extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
    + echo 'PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
    PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    + export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    + PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    + export CARGO_HOME=/workspace/deps
    + CARGO_HOME=/workspace/deps
    + export DEBEMAIL=liw@liw.fi
    + DEBEMAIL=liw@liw.fi
    + export 'DEBFULLNAME=Lars Wirzenius'
    + DEBFULLNAME='Lars Wirzenius'
    + /bin/env
    DEBFULLNAME=Lars Wirzenius
    CARGO_TARGET_DIR=/workspace/cache
    PWD=/workspace/src
    SYSTEMD_EXEC_PID=276
    LANG=C.UTF-8
    CARGO_HOME=/workspace/deps
    DEBEMAIL=liw@liw.fi
    INVOCATION_ID=50293d96585443749e94264be1d4b0bb
    SHLVL=2
    JOURNAL_STREAM=8:14473
    PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    OLDPWD=/
    _=/bin/env
    + command -v cargo
    /root/.cargo/bin/cargo
    + command -v rustc
    /root/.cargo/bin/rustc
    + cargo --version
    cargo 1.89.0 (c24e10642 2025-06-23)
    + rustc --version
    rustc 1.89.0 (29483883e 2025-08-04)
    ++ dpkg-parsechangelog -SSource
    + name=radicle-ci-broker
    ++ dpkg-parsechangelog -SVersion
    + version=0.19.1.ci20250819T142417-1
    ++ sed 's/-[^-]*$//'
    ++ echo 0.19.1.ci20250819T142417-1
    + uv=0.19.1.ci20250819T142417
    ++ dpkg --print-architecture
    + arch=amd64
    + orig=../radicle-ci-broker_0.19.1.ci20250819T142417.orig.tar.xz
    + deb=../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.deb
    + changes=../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.changes
    + git archive HEAD
    + xz
    + dpkg-buildpackage -us -uc
    dpkg-buildpackage: info: source package radicle-ci-broker
    dpkg-buildpackage: info: source version 0.19.1.ci20250819T142417-1
    dpkg-buildpackage: info: source distribution unstable
    dpkg-buildpackage: info: source changed by "Lars Wirzenius" <"liw@liw.fi">
    dpkg-buildpackage: info: host architecture amd64
     dpkg-source --before-build .
     debian/rules clean
    dh clean
       dh_auto_clean
       dh_clean
     dpkg-source -b .
    dpkg-source: info: using source format '3.0 (quilt)'
    dpkg-source: info: building radicle-ci-broker using existing ./radicle-ci-broker_0.19.1.ci20250819T142417.orig.tar.xz
    dpkg-source: info: building radicle-ci-broker in radicle-ci-broker_0.19.1.ci20250819T142417-1.debian.tar.xz
    dpkg-source: info: building radicle-ci-broker in radicle-ci-broker_0.19.1.ci20250819T142417-1.dsc
     debian/rules build
    dh build
       dh_update_autotools_config
       dh_autoreconf
       dh_auto_configure
       debian/rules override_dh_auto_build
    make[1]: Entering directory '/workspace/src'
    true
    make[1]: Leaving directory '/workspace/src'
       debian/rules override_dh_auto_test
    make[1]: Entering directory '/workspace/src'
    echo tests are disabled, for now
    tests are disabled, for now
    make[1]: Leaving directory '/workspace/src'
       create-stamp debian/debhelper-build-stamp
     debian/rules binary
    dh binary
       dh_testroot
       dh_prep
       debian/rules override_dh_auto_install
    make[1]: Entering directory '/workspace/src'
    cargo install --offline --locked --path=. --root=debian/radicle-ci-broker/usr --bin cib --bin cibtool
      Installing radicle-ci-broker v0.19.1 (/workspace/src)
       Compiling radicle-ci-broker v0.19.1 (/workspace/src)
        Finished `release` profile [optimized] target(s) in 30.90s
      Installing debian/radicle-ci-broker/usr/bin/cib
      Installing debian/radicle-ci-broker/usr/bin/cibtool
       Installed package `radicle-ci-broker v0.19.1 (/workspace/src)` (executables `cib`, `cibtool`)
    warning: be sure to add `debian/radicle-ci-broker/usr/bin` to your PATH to be able to run the installed binaries
    find debian -name '.crates*.*' -delete
    make[1]: Leaving directory '/workspace/src'
       dh_installdocs
       dh_installchangelogs
       dh_installman
       dh_lintian
       dh_perl
       dh_link
       dh_strip_nondeterminism
       dh_compress
       dh_fixperms
       dh_missing
       dh_strip
       dh_makeshlibs
       dh_shlibdeps
    dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/radicle-ci-broker/usr/bin/cibtool debian/radicle-ci-broker/usr/bin/cib were not linked against libm.so.6 (they use none of the library's symbols)
       dh_installdeb
       dh_gencontrol
       dh_md5sums
       dh_builddeb
    dpkg-deb: building package 'radicle-ci-broker-dbgsym' in '../radicle-ci-broker-dbgsym_0.19.1.ci20250819T142417-1_amd64.deb'.
    dpkg-deb: building package 'radicle-ci-broker' in '../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.deb'.
     dpkg-genbuildinfo -O../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.buildinfo
     dpkg-genchanges -O../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.changes
    dpkg-genchanges: info: including full source code in upload
     dpkg-source --after-build .
    dpkg-buildpackage: info: full upload (original source is included)
    + ls -l ..
    total 6768
    drwxr-xr-x  2 root root    4096 Aug 19 14:24 artifacts
    drwxr-xr-x  6 root root    4096 Aug 13 05:25 cache
    drwxr-xr-x  3 root root    4096 Aug 19 14:24 deps
    -rw-r--r--  1 root root  680788 Aug 19 14:24 radicle-ci-broker-dbgsym_0.19.1.ci20250819T142417-1_amd64.deb
    -rw-r--r--  1 root root    2304 Aug 19 14:24 radicle-ci-broker_0.19.1.ci20250819T142417-1.debian.tar.xz
    -rw-r--r--  1 root root    1078 Aug 19 14:24 radicle-ci-broker_0.19.1.ci20250819T142417-1.dsc
    -rw-r--r--  1 root root    6326 Aug 19 14:25 radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.buildinfo
    -rw-r--r--  1 root root    2634 Aug 19 14:25 radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.changes
    -rw-r--r--  1 root root 6073580 Aug 19 14:25 radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.deb
    -rw-r--r--  1 root root  134840 Aug 19 14:24 radicle-ci-broker_0.19.1.ci20250819T142417.orig.tar.xz
    drwxr-xr-x 10 root root    4096 Aug 19 14:24 src
    + for x in ../*.deb
    + dpkg -c ../radicle-ci-broker-dbgsym_0.19.1.ci20250819T142417-1_amd64.deb
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/lib/
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/lib/debug/
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/lib/debug/.build-id/
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/lib/debug/.build-id/46/
    -rw-r--r-- root/root   2667136 2025-08-19 14:24 ./usr/lib/debug/.build-id/46/b254dbd208744ed952fb775c42090903870be3.debug
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/lib/debug/.build-id/a4/
    -rw-r--r-- root/root   2909968 2025-08-19 14:24 ./usr/lib/debug/.build-id/a4/c999aa8b975a7f7894bbbfa09f385c11cce734.debug
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/doc/
    lrwxrwxrwx root/root         0 2025-08-19 14:24 ./usr/share/doc/radicle-ci-broker-dbgsym -> radicle-ci-broker
    + for x in ../*.deb
    + dpkg -c ../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.deb
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/bin/
    -rwxr-xr-x root/root  10724232 2025-08-19 14:24 ./usr/bin/cib
    -rwxr-xr-x root/root  11456824 2025-08-19 14:24 ./usr/bin/cibtool
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/doc/
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/doc/radicle-ci-broker/
    -rw-r--r-- root/root       621 2025-08-19 14:24 ./usr/share/doc/radicle-ci-broker/changelog.Debian.gz
    -rw-r--r-- root/root       396 2025-08-19 14:24 ./usr/share/doc/radicle-ci-broker/copyright
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/lintian/
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/lintian/overrides/
    -rw-r--r-- root/root       120 2025-08-19 14:24 ./usr/share/lintian/overrides/radicle-ci-broker
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/man/
    drwxr-xr-x root/root         0 2025-08-19 14:24 ./usr/share/man/man1/
    -rw-r--r-- root/root       298 2025-08-19 14:24 ./usr/share/man/man1/cib.1.gz
    -rw-r--r-- root/root       277 2025-08-19 14:24 ./usr/share/man/man1/cibtool.1.gz
    + mv ../radicle-ci-broker-dbgsym_0.19.1.ci20250819T142417-1_amd64.deb ../radicle-ci-broker_0.19.1.ci20250819T142417-1.debian.tar.xz ../radicle-ci-broker_0.19.1.ci20250819T142417-1.dsc ../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.buildinfo ../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.changes ../radicle-ci-broker_0.19.1.ci20250819T142417-1_amd64.deb ../radicle-ci-broker_0.19.1.ci20250819T142417.orig.tar.xz /workspace/artifacts
    RUN: Action finished OK
    RUN: Action TarCreate {
        archive: "/dev/vde",
        directory: "/workspace/cache",
    }
    [2025-08-19T14:25:04Z DEBUG ambient_ci::action] Plan::execute: TarCreate {
            archive: "/dev/vde",
            directory: "/workspace/cache",
        }
    [2025-08-19T14:25:04Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder {
            filename: Some(
                "/dev/vde",
            ),
            root: Some(
                "/workspace/cache",
            ),
            size: None,
        }
    [2025-08-19T14:25:04Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vde; exists? true
    [2025-08-19T14:25:04Z TRACE ambient_ci::vdrive] create archive file /dev/vde
    [2025-08-19T14:25:04Z TRACE ambient_ci::vdrive] directory /workspace/cache exists? true
    [2025-08-19T14:25:04Z TRACE ambient_ci::vdrive] add contents of /workspace/cache as .
    [2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] created virtual drive /dev/vde
    RUN: Action finished OK
    RUN: Action TarCreate {
        archive: "/dev/vdd",
        directory: "/workspace/artifacts",
    }
    [2025-08-19T14:25:18Z DEBUG ambient_ci::action] Plan::execute: TarCreate {
            archive: "/dev/vdd",
            directory: "/workspace/artifacts",
        }
    [2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] creating virtual drive (tar archive): VirtualDriveBuilder {
            filename: Some(
                "/dev/vdd",
            ),
            root: Some(
                "/workspace/artifacts",
            ),
            size: None,
        }
    [2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] tar archive to be created: /dev/vdd; exists? true
    [2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] create archive file /dev/vdd
    [2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] directory /workspace/artifacts exists? true
    [2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] add contents of /workspace/artifacts as .
    [2025-08-19T14:25:18Z TRACE ambient_ci::vdrive] created virtual drive /dev/vdd
    RUN: Action finished OK
    ambient-execute-plan ends
    EXIT CODE: 0
    
    ====================
[2025-08-19T14:25:20Z DEBUG ambient_ci::qemu] QEMU exit code 0
[2025-08-19T14:25:20Z DEBUG ambient_ci::run] remove old cache
[2025-08-19T14:25:20Z DEBUG ambient_ci::run] extract cache
[2025-08-19T14:25:25Z DEBUG ambient_ci::run] Executing post-plan steps
[2025-08-19T14:25:25Z DEBUG ambient_ci::project] write project state to /srv/ambient-state/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/meta.yaml
[2025-08-19T14:25:26Z INFO  ambient] ambient ends successfully

Ambient stderr

<empty log>