CI run for rad:zwTxygwuz5LDGBq255RA2CbNGrz8

Radicle repository id rad:zwTxygwuz5LDGBq255RA2CbNGrz8

Table of Contents

Run log

At: 2026-02-13 12:57:09Z
After: 0.00 seconds
Program: ambient
Version: 0.12.0
Ambient starts
At: 2026-02-13 12:57:09Z
After: 0.00 seconds
tmpdir: /home/_rad/tmp
image_store: /home/_rad/ambient-images
projects: /dev/null
state: /home/_rad/ambient-state
rsync_target: null
rsync_target_base: null
rsync_target_map: null
dput_target: null
executor: /usr/bin/ambient-execute-plan
artifacts_max_size: 1 GB
cache_max_size: 30 GB
qemu:
  cpus: 2
  memory: 12 GB
  kvm_binary: /usr/bin/kvm
  ovmf_vars_file: /usr/share/ovmf/OVMF.fd
  ovmf_code_file: /usr/share/ovmf/OVMF.fd
uefi: false
lint: true
Ambient configuration
At: 2026-02-13 12:57:09Z
After: 0.04 seconds
Hoping for the best
Will run CI for project rad:zwTxygwuz5LDGBq255RA2CbNGrz8
At: 2026-02-13 12:57:09Z
After: 0.04 seconds
CargoFetch(
    CargoFetch,
)
Start action cargo_fetch
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • cargo
  • --version
exit: 0
Stdout:
cargo 1.93.1 (083ac5135 2025-12-15)
OK: cargo --version
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • cargo
  • clippy
  • --version
exit: 0
Stdout:
clippy 0.1.93 (01f6ddf758 2026-02-11)
OK: cargo clippy --version
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • rustc
  • --version
exit: 0
Stdout:
rustc 1.93.1 (01f6ddf75 2026-02-11)
OK: rustc --version
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • cargo
  • fetch
  • --locked
exit: 0
OK: cargo fetch --locked
At: 2026-02-13 12:57:10Z
After: 0.44 seconds
End action cargo_fetch
At: 2026-02-13 12:57:10Z
After: 0.44 seconds
Hopefully all is good.
Plan succeeded
At: 2026-02-13 12:57:17Z
After: 8.26 seconds
Program: ambient-execute-plan
Version: 0.12.0@626957c
Executor starts
At: 2026-02-13 12:57:17Z
After: 8.26 seconds
steps:
- action: mkdir
  pathname: /ci
- action: mkdir
  pathname: /ci/artifacts
- action: tar_extract
  archive: /dev/vdc
  directory: /ci/src
- action: tar_extract
  archive: /dev/vdf
  directory: /ci/deps
- action: tar_extract
  archive: /dev/vde
  directory: /ci/cache
- action: shell
  shell: ln -sf /ci /workspace
- action: shell
  shell: git config --global user.name 'Ambient CI'
- action: shell
  shell: git config --global user.email ambient@example.com
- 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.
    export RAD_PASSPHRAE=secret
    rad auth --alias ambient
    env
    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:
    debemail: liw@liw.fi
    debfullname: Lars Wirzenius
- action: deb
  packages: .
- action: tar_create
  archive: /dev/vde
  directory: /ci/cache
- action: tar_create
  archive: /dev/vdd
  directory: /ci/artifacts
executor_drive: /dev/vdb
source_drive: /dev/vdc
artifact_drive: /dev/vdd
cache_drive: /dev/vde
deps_drive: /dev/vdf
workspace_dir: /ci
source_dir: /ci/src
deps_dir: /ci/deps
cache_dir: /ci/cache
artifacts_dir: /ci/artifacts
Runnable plan
At: 2026-02-13 12:57:17Z
After: 8.26 seconds
Mkdir(
    Mkdir {
        pathname: "/ci",
    },
)
Start action mkdir
At: 2026-02-13 12:57:17Z
After: 8.26 seconds
End action mkdir
At: 2026-02-13 12:57:17Z
After: 8.26 seconds
Mkdir(
    Mkdir {
        pathname: "/ci/artifacts",
    },
)
Start action mkdir
At: 2026-02-13 12:57:17Z
After: 8.26 seconds
End action mkdir
At: 2026-02-13 12:57:17Z
After: 8.26 seconds
TarExtract(
    TarExtract {
        archive: "/dev/vdc",
        directory: "/ci/src",
    },
)
Start action tar_extract
At: 2026-02-13 12:57:17Z
After: 8.30 seconds
End action tar_extract
At: 2026-02-13 12:57:17Z
After: 8.30 seconds
TarExtract(
    TarExtract {
        archive: "/dev/vdf",
        directory: "/ci/deps",
    },
)
Start action tar_extract
At: 2026-02-13 12:57:19Z
After: 10.32 seconds
End action tar_extract
At: 2026-02-13 12:57:19Z
After: 10.32 seconds
TarExtract(
    TarExtract {
        archive: "/dev/vde",
        directory: "/ci/cache",
    },
)
Start action tar_extract
At: 2026-02-13 12:57:28Z
After: 18.71 seconds
End action tar_extract
At: 2026-02-13 12:57:28Z
After: 18.71 seconds
Shell(
    Shell {
        shell: "ln -sf /ci /workspace",
    },
)
Start action shell
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • bash
  • -c
  • set -xeuo pipefail ln -sf /ci /workspace
exit: 0
Stderr:
+ ln -sf /ci /workspace
OK: bash -c set -xeuo pipefail ln -sf /ci /workspace
At: 2026-02-13 12:57:28Z
After: 18.72 seconds
End action shell
At: 2026-02-13 12:57:28Z
After: 18.72 seconds
Shell(
    Shell {
        shell: "git config --global user.name 'Ambient CI'",
    },
)
Start action shell
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • bash
  • -c
  • set -xeuo pipefail git config --global user.name 'Ambient CI'
exit: 0
Stderr:
+ git config --global user.name 'Ambient CI'
OK: bash -c set -xeuo pipefail git config --global user.name 'Ambient CI'
At: 2026-02-13 12:57:28Z
After: 18.74 seconds
End action shell
At: 2026-02-13 12:57:28Z
After: 18.74 seconds
Shell(
    Shell {
        shell: "git config --global user.email ambient@example.com",
    },
)
Start action shell
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • bash
  • -c
  • set -xeuo pipefail git config --global user.email ambient@example.com
exit: 0
Stderr:
+ git config --global user.email ambient@example.com
OK: bash -c set -xeuo pipefail git config --global user.email ambient@example.com
At: 2026-02-13 12:57:28Z
After: 18.74 seconds
End action shell
At: 2026-02-13 12:57:28Z
After: 18.74 seconds
CargoClippy(
    CargoClippy,
)
Start action cargo_clippy
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • cargo
  • --version
exit: 0
Stdout:
cargo 1.93.0 (083ac5135 2025-12-15)
OK: cargo --version
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • cargo
  • clippy
  • --version
exit: 0
Stdout:
clippy 0.1.93 (254b59607d 2026-01-19)
OK: cargo clippy --version
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • rustc
  • --version
exit: 0
Stdout:
rustc 1.93.0 (254b59607 2026-01-19)
OK: rustc --version
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • cargo
  • clippy
  • --offline
  • --locked
  • --workspace
  • --all-targets
  • --no-deps
  • --
  • --deny
  • warnings
exit: 0
Stderr:
   Compiling radicle-ci-broker v0.25.0 (/ci/src)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.46s
OK: cargo clippy --offline --locked --workspace --all-targets --no-deps -- --deny warnings
At: 2026-02-13 12:57:32Z
After: 22.52 seconds
End action cargo_clippy
At: 2026-02-13 12:57:32Z
After: 22.52 seconds
Shell(
    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.\nexport RAD_PASSPHRAE=secret\nrad auth --alias ambient\nenv\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",
    },
)
Start action shell
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • bash
  • -c
  • set -xeuo pipefail 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. export RAD_PASSPHRAE=secret rad auth --alias ambient env 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/.
exit: 0
Stdout:
Initializing your radicle 👾 identity

✓ Creating your Ed25519 keypair...
✓ Your Radicle DID is did:key:z6MktfmfGxFF9Gym4zYWiHiEQwc8jAJSYg63ghcQ5jH1RgLP. This identifies your device. Run `rad self` to show it at all times.
✓ You're all set.

To create a Radicle repository, run `rad init` from a Git repository with at least one commit.
To clone a repository, run `rad clone <rid>`. For example, `rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5` clones the Radicle 'heartwood' repository.
To get a list of all commands, run `rad`.
CARGO_TARGET_DIR=/workspace/cache
PWD=/ci/src
SYSTEMD_EXEC_PID=278
HOME=/root
LANG=C.UTF-8
CARGO_HOME=/workspace/deps
INVOCATION_ID=7ab5c72ec87949de900d0ab8cfc7b66f
RAD_PASSPHRAE=secret
SHLVL=2
JOURNAL_STREAM=8:13095
PATH=/root/.cargo/bin:/root/.radicle/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
OLDPWD=/
_=/usr/bin/env

running 87 tests
test adapter::test::adapter_does_not_exist ... ok
test adapter::test::adapter_ends_ok_before_first_message ... ok
test adapter::test::adapter_ends_ok_before_second_message ... ok
test adapter::test::adapter_exits_nonzero ... 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_not_executable ... ok
test adapter::test::adapter_is_killed_before_first_message ... 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::executes_adapter ... ok
test ci_event::test::branch_created ... ok
test broker::test::adapter_fails ... ok
test ci_event::test::branch_deleted ... ok
test ci_event::test::diff_refs ... 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::patch ... ok
test ci_event::test_parsed_ref::branch ... 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 ci_event::test_parsed_ref::tag ... ok
test filter::test::allows_opposite ... ok
test filter::test::allows_patch_creation ... ok
test filter::test::allows_shutdown ... ok
test filter::test::allows_patch_update ... ok
test filter::test::allows_specific_patch ... ok
test filter::test::deserialize_yaml_nested_not ... ok
test filter::test::allows_wanted_tag ... 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_update ... ok
test filter::test::only_allows_branch_deletion ... 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 msg::trigger_from_ci_event_tests::trigger_push_from_branch_updated ... 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 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. 87 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.40s


running 0 tests

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


running 0 tests

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


running 0 tests

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


running 0 tests

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


running 73 tests
test adapter_with_url_runs_successfully ... ok
test adapter_can_provide_url_for_info_on_run ... ok
test add_information_about_run_that_s_finished_in_failure_to_database ... ok
test add_information_about_run_that_s_running_to_database ... ok
test add_information_about_run_that_s_finished_successfully_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 can_shut_down_cleanly ... ok
test count_in_a_single_process has been running for over 60 seconds
test count_in_concurrent_processes has been running for over 60 seconds
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_anydelegate ... 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_or ... ok
test filter_predicate_tag ... 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 handles_adapter_failing_on_a_successful_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 processes_empty_event_queue_successfully ... 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 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 insert_many_events_into_queue ... 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. 73 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 236.01s


running 2 tests
test src/msg.rs - msg::RunId (line 50) ... ok
test src/timeoutcmd.rs - timeoutcmd (line 21) ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

all doctests ran in 0.62s; merged doctests compilation took 0.61s
make: Entering directory '/ci/src/doc'
./messages.sh > messages.md
subplot docgen --date "Version: $(git describe --long --dirty)" architecture.subplot -o architecture.html
pandoc --standalone --metadata title="Radicle CI overview" "overview.md" --output "overview.html"
pandoc --standalone --metadata title="Radicle CI event filter implementation" "filter-impl.md" --output "filter-impl.html"
pandoc --standalone --metadata title="Radicle CI adapter implementation" "adapter-impl.md" --output "adapter-impl.html"
make: Leaving directory '/ci/src/doc'
Stderr:
+ 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.25.0 (/ci/src)
 Documenting radicle-ci-broker v0.25.0 (/ci/src)
warning: unresolved link to `RunningProcess`
   --> src/adapter.rs:378:44
    |
378 |     /// 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.92s
   Generated /workspace/cache/doc/radicle_ci_broker/index.html and 4 other files
+ export RAD_PASSPHRAE=secret
+ RAD_PASSPHRAE=secret
+ rad auth --alias ambient
+ env
+ cargo test --workspace --no-fail-fast -- --skip upgrade --test-threads 2
   Compiling radicle-ci-broker v0.25.0 (/ci/src)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 4.41s
     Running unittests src/lib.rs (/workspace/cache/debug/deps/radicle_ci_broker-1fea19227950a935)
     Running unittests src/bin/cib.rs (/workspace/cache/debug/deps/cib-cda217d627bec61a)
     Running unittests src/bin/cibtool.rs (/workspace/cache/debug/deps/cibtool-3f04d13e312a5f24)
     Running unittests src/bin/default_branch.rs (/workspace/cache/debug/deps/default_branch-6d8772a068b77345)
     Running unittests src/bin/synthetic-events.rs (/workspace/cache/debug/deps/synthetic_events-a3c773567a5aeb98)
     Running tests/subplot.rs (/workspace/cache/debug/deps/subplot-a8640351ebe2bbcb)
   Doc-tests radicle_ci_broker
+ 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
fatal: No names found, cannot describe anything.
 INFO Starting Subplot
 INFO Subplot finished successfully
+ cp doc/adapter-impl.html doc/architecture.html doc/ci-broker.html doc/filter-impl.html doc/overview.html doc/userguide.html /workspace/artifacts/.
OK: bash -c set -xeuo pipefail 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. export RAD_PASSPHRAE=secret rad auth --alias ambient env 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/.
At: 2026-02-13 13:01:50Z
After: 281.04 seconds
End action shell
At: 2026-02-13 13:01:50Z
After: 281.05 seconds
Custom(
    Custom {
        name: "dch",
        args: {
            "debemail": String("liw@liw.fi"),
            "debfullname": String("Lars Wirzenius"),
        },
    },
)
Start action custom
At: 2026-02-13 13:01:50Z
After: 281.29 seconds
End action custom
At: 2026-02-13 13:01:50Z
After: 281.29 seconds
Deb(
    Deb {
        packages: Some(
            ".",
        ),
    },
)
Start action deb
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
  • /bin/bash
  • -c
  • #!/usr/bin/env bash set -xeuo pipefail echo "PATH at start: $PATH" export PATH="/root/.cargo/bin:$PATH" export CARGO_HOME=/workspace/deps export DEBEMAIL=liw@liw.fi export DEBFULLNAME="Lars Wirzenius" /bin/env command -v cargo command -v rustc cargo --version rustc --version # Get name and version of source package. name="$(dpkg-parsechangelog -SSource)" version="$(dpkg-parsechangelog -SVersion)" # Get upstream version: everything before the last dash. uv="$(echo "$version" | sed 's/-[^-]*$//')" # Files that will be created. arch="$(dpkg --print-architecture)" orig="../${name}_${uv}.orig.tar.xz" deb="../${name}_${version}_${arch}.deb" changes="../${name}_${version}_${arch}.changes" # Create "upstream tarball". git archive HEAD | xz >"$orig" # Build package. dpkg-buildpackage -us -uc # Dump some information to make it easier to visually verify # everything looks OK. Also, test the package with the lintian tool. ls -l .. for x in ../*.deb; do dpkg -c "$x"; done # FIXME: disabled while this prevents radicle-native-ci deb from being built. # lintian -i --allow-root --fail-on warning ../*.changes # Move files to artifacts directory. mv ../*_* /ci/artifacts/.
exit: 0
Stdout:
PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DEBFULLNAME=Lars Wirzenius
CARGO_TARGET_DIR=/ci/cache/cargo-target
PWD=/ci/src
SYSTEMD_EXEC_PID=278
HOME=/root
LANG=C.UTF-8
CARGO_HOME=/workspace/deps
DEBEMAIL=liw@liw.fi
INVOCATION_ID=7ab5c72ec87949de900d0ab8cfc7b66f
SHLVL=2
JOURNAL_STREAM=8:13095
PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
OLDPWD=/
_=/bin/env
/root/.cargo/bin/cargo
/root/.cargo/bin/rustc
cargo 1.93.0 (083ac5135 2025-12-15)
rustc 1.93.0 (254b59607 2026-01-19)
dpkg-buildpackage: info: source package radicle-ci-broker
dpkg-buildpackage: info: source version 0.25.0.ci20260213T130150-1
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by "Lars Wirzenius" <"liw@liw.fi">
dpkg-buildpackage: info: host architecture amd64
dh clean
   dh_auto_clean
   dh_clean
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building radicle-ci-broker using existing ./radicle-ci-broker_0.25.0.ci20260213T130150.orig.tar.xz
dpkg-source: info: building radicle-ci-broker in radicle-ci-broker_0.25.0.ci20260213T130150-1.debian.tar.xz
dpkg-source: info: building radicle-ci-broker in radicle-ci-broker_0.25.0.ci20260213T130150-1.dsc
dh build
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure
   debian/rules override_dh_auto_build
make[1]: Entering directory '/ci/src'
true
make[1]: Leaving directory '/ci/src'
   debian/rules override_dh_auto_test
make[1]: Entering directory '/ci/src'
echo tests are disabled, for now
tests are disabled, for now
make[1]: Leaving directory '/ci/src'
   create-stamp debian/debhelper-build-stamp
dh binary
   dh_testroot
   dh_prep
   debian/rules override_dh_auto_install
make[1]: Entering directory '/ci/src'
cargo install --offline --locked --path=. --root=debian/radicle-ci-broker/usr --bin cib --bin cibtool
find debian -name '.crates*.*' -delete
make[1]: Leaving directory '/ci/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
   dh_installdeb
   dh_gencontrol
   dh_md5sums
   dh_builddeb
dpkg-deb: building package 'radicle-ci-broker-dbgsym' in '../radicle-ci-broker-dbgsym_0.25.0.ci20260213T130150-1_amd64.deb'.
dpkg-deb: building package 'radicle-ci-broker' in '../radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.deb'.
dpkg-genchanges: info: including full source code in upload
dpkg-buildpackage: info: full upload (original source is included)
total 86652
drwxr-xr-x  2 root root     4096 Feb 13 13:01 artifacts
drwxr-xr-x  6 root root     4096 Feb 13 06:26 cache
drwxr-xr-x  3 root root     4096 Feb 13 12:57 deps
-rw-r--r--  1 root root 81808292 Feb 13 13:03 radicle-ci-broker-dbgsym_0.25.0.ci20260213T130150-1_amd64.deb
-rw-r--r--  1 root root     2364 Feb 13 13:01 radicle-ci-broker_0.25.0.ci20260213T130150-1.debian.tar.xz
-rw-r--r--  1 root root     1078 Feb 13 13:01 radicle-ci-broker_0.25.0.ci20260213T130150-1.dsc
-rw-r--r--  1 root root     6371 Feb 13 13:03 radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.buildinfo
-rw-r--r--  1 root root     2640 Feb 13 13:03 radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.changes
-rw-r--r--  1 root root  6348896 Feb 13 13:02 radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.deb
-rw-r--r--  1 root root   529072 Feb 13 13:01 radicle-ci-broker_0.25.0.ci20260213T130150.orig.tar.xz
drwxr-xr-x 10 root root     4096 Feb 13 13:01 src
drwxr-xr-x root/root         0 2026-02-13 13:01 ./
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/lib/
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/lib/debug/
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/lib/debug/.build-id/19/
-rw-r--r-- root/root  45057424 2026-02-13 13:01 ./usr/lib/debug/.build-id/19/cb7a67034094a120f5141c40e9ca9a2646288c.debug
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/lib/debug/.build-id/b6/
-rw-r--r-- root/root  41471312 2026-02-13 13:01 ./usr/lib/debug/.build-id/b6/0f688635c10d6814cd4025867e9170eaa00406.debug
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/share/
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/share/doc/
lrwxrwxrwx root/root         0 2026-02-13 13:01 ./usr/share/doc/radicle-ci-broker-dbgsym -> radicle-ci-broker
drwxr-xr-x root/root         0 2026-02-13 13:01 ./
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/bin/
-rwxr-xr-x root/root  10282128 2026-02-13 13:01 ./usr/bin/cib
-rwxr-xr-x root/root  11752216 2026-02-13 13:01 ./usr/bin/cibtool
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/share/
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/share/doc/
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/share/doc/radicle-ci-broker/
-rw-r--r-- root/root       706 2026-02-13 13:01 ./usr/share/doc/radicle-ci-broker/changelog.Debian.gz
-rw-r--r-- root/root       396 2026-02-13 13:01 ./usr/share/doc/radicle-ci-broker/copyright
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/share/lintian/
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       120 2026-02-13 13:01 ./usr/share/lintian/overrides/radicle-ci-broker
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/share/man/
drwxr-xr-x root/root         0 2026-02-13 13:01 ./usr/share/man/man1/
-rw-r--r-- root/root       298 2026-02-13 13:01 ./usr/share/man/man1/cib.1.gz
-rw-r--r-- root/root       277 2026-02-13 13:01 ./usr/share/man/man1/cibtool.1.gz
Stderr:
+ echo '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
+ command -v cargo
+ command -v rustc
+ cargo --version
+ rustc --version
++ dpkg-parsechangelog -SSource
+ name=radicle-ci-broker
++ dpkg-parsechangelog -SVersion
+ version=0.25.0.ci20260213T130150-1
++ echo 0.25.0.ci20260213T130150-1
++ sed 's/-[^-]*$//'
+ uv=0.25.0.ci20260213T130150
++ dpkg --print-architecture
+ arch=amd64
+ orig=../radicle-ci-broker_0.25.0.ci20260213T130150.orig.tar.xz
+ deb=../radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.deb
+ changes=../radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.changes
+ git archive HEAD
+ xz
+ dpkg-buildpackage -us -uc
 dpkg-source --before-build .
 debian/rules clean
 dpkg-source -b .
 debian/rules build
 debian/rules binary
  Installing radicle-ci-broker v0.25.0 (/ci/src)
   Compiling radicle-ci-broker v0.25.0 (/ci/src)
    Finished `release` profile [optimized + debuginfo] target(s) in 45.59s
  Installing /ci/src/debian/radicle-ci-broker/usr/bin/cib
  Installing /ci/src/debian/radicle-ci-broker/usr/bin/cibtool
   Installed package `radicle-ci-broker v0.25.0 (/ci/src)` (executables `cib`, `cibtool`)
warning: be sure to add `/ci/src/debian/radicle-ci-broker/usr/bin` to your PATH to be able to run the installed binaries
 dpkg-genbuildinfo -O../radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.buildinfo
 dpkg-genchanges -O../radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.changes
 dpkg-source --after-build .
+ ls -l ..
+ for x in ../*.deb
+ dpkg -c ../radicle-ci-broker-dbgsym_0.25.0.ci20260213T130150-1_amd64.deb
+ for x in ../*.deb
+ dpkg -c ../radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.deb
+ mv ../radicle-ci-broker-dbgsym_0.25.0.ci20260213T130150-1_amd64.deb ../radicle-ci-broker_0.25.0.ci20260213T130150-1.debian.tar.xz ../radicle-ci-broker_0.25.0.ci20260213T130150-1.dsc ../radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.buildinfo ../radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.changes ../radicle-ci-broker_0.25.0.ci20260213T130150-1_amd64.deb ../radicle-ci-broker_0.25.0.ci20260213T130150.orig.tar.xz /ci/artifacts/.
OK: /bin/bash -c #!/usr/bin/env bash set -xeuo pipefail echo "PATH at start: $PATH" export PATH="/root/.cargo/bin:$PATH" export CARGO_HOME=/workspace/deps export DEBEMAIL=liw@liw.fi export DEBFULLNAME="Lars Wirzenius" /bin/env command -v cargo command -v rustc cargo --version rustc --version # Get name and version of source package. name="$(dpkg-parsechangelog -SSource)" version="$(dpkg-parsechangelog -SVersion)" # Get upstream version: everything before the last dash. uv="$(echo "$version" | sed 's/-[^-]*$//')" # Files that will be created. arch="$(dpkg --print-architecture)" orig="../${name}_${uv}.orig.tar.xz" deb="../${name}_${version}_${arch}.deb" changes="../${name}_${version}_${arch}.changes" # Create "upstream tarball". git archive HEAD | xz >"$orig" # Build package. dpkg-buildpackage -us -uc # Dump some information to make it easier to visually verify # everything looks OK. Also, test the package with the lintian tool. ls -l .. for x in ../*.deb; do dpkg -c "$x"; done # FIXME: disabled while this prevents radicle-native-ci deb from being built. # lintian -i --allow-root --fail-on warning ../*.changes # Move files to artifacts directory. mv ../*_* /ci/artifacts/.
At: 2026-02-13 13:03:08Z
After: 359.08 seconds
End action deb
At: 2026-02-13 13:03:08Z
After: 359.08 seconds
TarCreate(
    TarCreate {
        archive: "/dev/vde",
        directory: "/ci/cache",
    },
)
Start action tar_create
At: 2026-02-13 13:03:14Z
After: 365.17 seconds
End action tar_create
At: 2026-02-13 13:03:14Z
After: 365.18 seconds
TarCreate(
    TarCreate {
        archive: "/dev/vdd",
        directory: "/ci/artifacts",
    },
)
Start action tar_create
At: 2026-02-13 13:03:15Z
After: 365.36 seconds
End action tar_create
At: 2026-02-13 13:03:15Z
After: 365.36 seconds
Hopefully all is good.
Plan succeeded
At: 2026-02-13 13:03:15Z
After: 365.36 seconds
Everything is fine.
Executor ends, success
At: 2026-02-13 13:03:23Z
After: 374.04 seconds
    exit: 0
    QEMU OK
    At: 2026-02-13 13:03:23Z
    After: 373.34 seconds
    Hopefully all is good.
    Plan succeeded
    At: 2026-02-13 13:03:23Z
    After: 374.04 seconds
    Everything is fine.
    Ambient ends, success

    Trigger message

    {
      "request": "trigger",
      "version": 1,
      "event_type": "push",
      "repository": {
        "id": "rad:zwTxygwuz5LDGBq255RA2CbNGrz8",
        "name": "radicle-ci-broker",
        "description": "Radicle CI broker",
        "private": false,
        "default_branch": "main",
        "delegates": [
          "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
          "did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT"
        ]
      },
      "pusher": {
        "id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
        "alias": "liw"
      },
      "before": "02e259f0dfe03d058d8652d0d17f08577a1ba1b8",
      "after": "02e259f0dfe03d058d8652d0d17f08577a1ba1b8",
      "branch": "main",
      "commits": [
        "02e259f0dfe03d058d8652d0d17f08577a1ba1b8",
        "1620a6a14761ed49013d0ccead34b993997ebba0",
        "0e2bc0de39f6b5f580c10e370cf08776be028750",
        "a7c73cece8ee4005b322b39641e7a738efe66b7a",
        "a5842ff37d4a69eb4d31a39c358712dfed8ef376",
        "f38a67bf516402553d1d01a27a1ad01372f6e388"
      ]
    }

    Ambient stdout

    deprecated: the `cpus` field is replaced by `qemu.cpus`
    deprecated: the `memory` field is replaced by `qemu.memory`
    run CI for rad:zwTxygwuz5LDGBq255RA2CbNGrz8
    

    Ambient stderr

    <empty log>