CI run for rad:zwTxygwuz5LDGBq255RA2CbNGrz8

Triggered by

{
  "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": "d1d80ad421e962d576cd7f8571ae5d3cef8f75ac",
    "author": {
      "id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
      "alias": "liw"
    },
    "title": "Add Tag events",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "6dc057e27f55fced9b536e2a948a1cfb204427fe",
    "after": "6ec75d19784849cadf50201a0e1de0338eb277e6",
    "commits": [
      "6ec75d19784849cadf50201a0e1de0338eb277e6",
      "a7d02c18c4e3282fd84238eb99d111bc904b5f2f",
      "b783ef65d7e0718a1e777d378c4d5d3b66c71728",
      "daa73ab7c22ab856941bf71d6f2777a2d98d96ec",
      "504f13262c0ade4ee57a0c55ccb4b8195f99df0c"
    ],
    "target": "6dc057e27f55fced9b536e2a948a1cfb204427fe",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "d1d80ad421e962d576cd7f8571ae5d3cef8f75ac",
        "author": {
          "id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
          "alias": "liw"
        },
        "description": "",
        "base": "6dc057e27f55fced9b536e2a948a1cfb204427fe",
        "oid": "6ec75d19784849cadf50201a0e1de0338eb277e6",
        "timestamp": 1743757302
      }
    ]
  }
}

Run log

[2025-04-04T09:08:32Z INFO  ambient] ambient starts
[=3h[=3hBdsDxe: failed to load Boot0001 "UEFI QEMU DVD-ROM QM00003 " from PciRoot(0x0)/Pci(0x1,0x1)/Ata(Secondary,Master,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: Extracting tar archive from /dev/vdb
./
./plan.yaml
./run-ci

INFO: Running run-ci from /dev/vdb
================================ BEGIN ================================
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 DEBEMAIL=liw@liw.fi
    export DEBFULLNAME="Lars Wirzenius"
    export CARGO_TARGET_DIR=/workspace/cache
    export CARGO_HOME=/workspace/deps
    export HOME=/root
    export PATH="/root/.cargo/bin:$PATH"

    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

    # Clean up after tests and documentation building.
    git reset --hard
    git clean -fdx
    git status --ignored

    V="$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')"
    T="$(date -u "+%Y%m%dT%H%M%S")"
    version="$V.ci$T-1"
    dch -v "$version" "CI build under Ambient."
    dch -r ''
- 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",
}
RUN: Action finished OK
RUN: Action Mkdir {
    pathname: "/workspace/artifacts",
}
RUN: Action finished OK
RUN: Action TarExtract {
    archive: "/dev/vdc",
    directory: "/workspace/src",
}
RUN: Action finished OK
RUN: Action TarExtract {
    archive: "/dev/vdf",
    directory: "/workspace/deps",
}
RUN: Action finished OK
RUN: Action TarExtract {
    archive: "/dev/vde",
    directory: "/workspace/cache",
}
RUN: Action finished OK
RUN: Action Spawn {
    argv: [
        "find",
        "/workspace",
        "-maxdepth",
        "2",
        "-ls",
    ],
}
SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
       cwd=/workspace/src (exists? true)
       extra_env=[]
  3407873      4 drwxr-xr-x   6 root     root         4096 Apr  4 09:02 /workspace
  3429877      4 drwxr-xr-x   6 root     root         4096 Feb  3 11:43 /workspace/cache
  3448975      4 drwxr-xr-x   7 root     root         4096 Mar 31 13:12 /workspace/cache/release
  3580168      4 drwxr-xr-x   7 root     root         4096 Mar 31 13:12 /workspace/cache/debug
  3580167      4 drwxr-xr-x   2 root     root         4096 Feb  3 11:37 /workspace/cache/tmp
  3448973      4 -rw-r--r--   1 root     root         1178 Mar 31 13:07 /workspace/cache/.rustc_info.json
  3448974      4 -rw-r--r--   1 root     root          218 Feb  3 11:38 /workspace/cache/.rustdoc_fingerprint.json
  3429878     12 drwxr-xr-x 272 root     root        12288 Mar 31 13:07 /workspace/cache/doc
  3407874      4 drwxr-xr-x   2 root     root         4096 Apr  4 09:02 /workspace/artifacts
  3407875      4 drwxr-xr-x   9 root     root         4096 Apr  4 09:01 /workspace/src
  3407994      4 drwxr-xr-x   3 root     root         4096 Apr  4 09:01 /workspace/src/debian
  3408048      8 -rw-r--r--   1 root     root         4155 Apr  4 09:01 /workspace/src/README.md
  3407991      4 -rw-r--r--   1 root     root            5 Apr  4 09:01 /workspace/src/rust-toolchain
  3407883      4 drwxr-xr-x   8 root     root         4096 Apr  4 09:01 /workspace/src/.git
  3408053     12 -rw-r--r--   1 root     root         9723 Apr  4 09:01 /workspace/src/LICENSE-APACHE
  3407877      4 -rw-r--r--   1 root     root          257 Apr  4 09:01 /workspace/src/ci-broker.subplot
  3408052      8 -rw-r--r--   1 root     root         5951 Apr  4 09:01 /workspace/src/flake.nix
  3407989      4 drwxr-xr-x   2 root     root         4096 Apr  4 09:01 /workspace/src/tests
  3407878     32 -rw-r--r--   1 root     root        30202 Apr  4 09:01 /workspace/src/NEWS.md
  3408054     88 -rw-r--r--   1 root     root        86973 Apr  4 09:01 /workspace/src/Cargo.lock
  3408051      4 -rw-r--r--   1 root     root           10 Apr  4 09:01 /workspace/src/.envrc
  3408005      4 drwxr-xr-x   4 root     root         4096 Apr  4 09:01 /workspace/src/src
  3407880      4 drwxr-xr-x   2 root     root         4096 Apr  4 09:01 /workspace/src/.radicle
  3407879      8 -rw-r--r--   1 root     root         5418 Apr  4 09:01 /workspace/src/deny.toml
  3408046      4 drwxr-xr-x   2 root     root         4096 Apr  4 09:01 /workspace/src/.cargo
  3408049      4 -rw-r--r--   1 root     root         1079 Apr  4 09:01 /workspace/src/LICENSE-MIT
  3408055      4 -rw-r--r--   1 root     root          970 Apr  4 09:01 /workspace/src/build.rs
  3407992      8 -rw-r--r--   1 root     root         6528 Apr  4 09:01 /workspace/src/flake.lock
  3408056      4 drwxr-xr-x   2 root     root         4096 Apr  4 09:01 /workspace/src/doc
  3407876      4 -rw-r--r--   1 root     root           44 Apr  4 09:01 /workspace/src/.gitignore
  3407882      4 -rw-r--r--   1 root     root         1660 Apr  4 09:01 /workspace/src/Cargo.toml
  3408050     84 -rw-r--r--   1 root     root        85428 Apr  4 09:01 /workspace/src/ci-broker.md
  3407993      4 -rw-r--r--   1 root     root          732 Apr  4 09:01 /workspace/src/ci-broker.yaml
  3408066      4 drwxr-xr-x   3 root     root         4096 Apr  4 09:01 /workspace/deps
  3408067    108 -rw-r--r--   1 root     root       110592 Apr  4 09:01 /workspace/deps/.global-cache
  3408069      4 drwxr-xr-x   5 root     root         4096 Mar  5 14:47 /workspace/deps/registry
  3408068      0 -rw-r--r--   1 root     root            0 Feb  3 10:19 /workspace/deps/.package-cache
RUN: Action finished OK
RUN: Action 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
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.15.1 (/workspace/src)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.93s
RUN: Action finished OK
RUN: Action Shell {
    shell: "export DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\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\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n",
}
SPAWN: argv=["/bin/bash", "-c", "set -xeuo pipefail\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\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\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n\n"]
       cwd=/workspace/src (exists? true)
       extra_env=[]
+ export DEBEMAIL=liw@liw.fi
+ DEBEMAIL=liw@liw.fi
+ export 'DEBFULLNAME=Lars Wirzenius'
+ DEBFULLNAME='Lars Wirzenius'
+ 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:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ cargo doc --workspace --no-deps
   Compiling radicle-ci-broker v0.15.1 (/workspace/src)
 Documenting radicle-ci-broker v0.15.1 (/workspace/src)
warning: unresolved link to `RunningProcess`
   --> src/adapter.rs:272:44
    |
272 |     /// 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: `radicle-ci-broker` (lib doc) generated 1 warning
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.09s
   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.15.1 (/workspace/src)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 10.96s
     Running unittests src/lib.rs (/workspace/cache/debug/deps/radicle_ci_broker-29155131cefb0ce5)

running 79 tests
test adapter::test::adapter_does_not_exist ... ok
test adapter::test::adapter_ends_ok_before_second_message ... ok
test adapter::test::adapter_exits_nonzero ... ok
test adapter::test::adapter_has_bad_interpreter ... ok
test adapter::test::adapter_first_message_isnt_triggered ... 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_not_executable ... ok
test adapter::test::adapter_is_killed_before_any_messages ... ok
test adapter::test::adapter_outputs_too_many_messages ... ok
test adapter::test::adapter_produces_as_bad_message ... ok
test adapter::test::adapter_reports_failure ... ok
test adapter::test::adapter_reports_success ... ok
test broker::test::adapter_fails ... ok
test ci_event::test::branch_created ... ok
test ci_event::test::branch_deleted ... ok
test ci_event::test::branch_updated ... ok
test ci_event::test::nothing_updated ... ok
test ci_event::test::patch_created ... ok
test ci_event::test::patch_updated ... ok
test ci_event::test::skipped ... ok
test 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::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_allows_other_patch ... ok
test filter::test::only_allows_branch_creation ... ok
test filter::test::only_allows_branch_deletion ... ok
test filter::test::only_allows_branch_update ... ok
test filter::test::only_allows_patch_creation ... ok
test filter::test::only_allows_patch_update ... ok
test filter::test::yaml_roundtrip ... ok
test msg::trigger_from_ci_event_tests::trigger_patch_from_patch_created ... ok
test msg::trigger_from_ci_event_tests::trigger_patch_from_patch_updated ... ok
test msg::trigger_from_ci_event_tests::trigger_push_from_branch_created ... ok
test broker::test::executes_adapter ... 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_true ... ok
test timeoutcmd::tests::bin_false ... ok
test timeoutcmd::tests::hello_world_to_stderr ... ok
test timeoutcmd::tests::hello_world ... ok
test timeoutcmd::tests::kill_stderr ... ok
test timeoutcmd::tests::kill ... 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::yes_to_stdout ... ok

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

     Running unittests src/bin/cib.rs (/workspace/cache/debug/deps/cib-08f7c417624c9bb3)

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

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-823ba2bf72491287)

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

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-0a363db0b8b36a2d)

running 66 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 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 fails_run_if_building_trigger_fails__but_does_not_crash ... ok
test count_in_concurrent_processes ... ok
test filter_predicate_allow ... ok
test filter_predicate_and ... ok
test filter_predicate_branch ... ok
test filter_predicate_branchcreated ... ok
test filter_predicate_branchdeleted ... ok
test filter_predicate_branchupdated ... ok
test filter_predicate_defaultbranch ... ok
test filter_predicate_deny ... ok
test filter_predicate_hasfile ... ok
test filter_predicate_node ... ok
test filter_predicate_not ... ok
test filter_predicate_or ... ok
test filter_predicate_repository ... ok
test filter_predicate_tag ... FAILED
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 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_without_a_report_directory ... ok
test runs_adapters_for_all_matching_triggers ... ok
test set_up_a_node ... ok
test shows_config_as_json ... ok
test shuts_down_when_requested ... ok
test smoke_test__runs_adapter ... 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 insert_many_events_into_queue has been running for over 60 seconds
test insert_many_events_into_queue ... ok

failures:

---- filter_predicate_tag stdout ----
unknown: scenario: Filter predicate Tag
ci-broker.md:917:1:   step: given a Radicle node, with CI configured with broker.yaml and adapter dummy.sh
check CI broker binaries are in /workspace/cache/debug
write configuration file broker.yaml
create env file
create env.sh script
make env.sh executable
write adapter file adapter.sh from dummy.sh
make adapter.sh executable
running command rad ["auth", "--alias=brokertest"]
envs: [("RAD_HOME", "/tmp/subplotHReRlFilter-predicate-Tag/.radicle"), ("RAD_PASSPHRASE", "secret"), ("RAD_SOCKET", "synt.sock")]
cwd: "/tmp/subplotHReRlFilter-predicate-Tag"; exists? true
rad exit code: Some(0)
rad: stdout:

Initializing your radicle 👾 identity

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

✗ Hint: install ssh-agent to have it fill in your passphrase for you when signing.

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`.

====================
rad: stderr:

=====================
ci-broker.md:918:1:   step: given a Git repository xyzzy in the Radicle node
running command git ["config", "--global", "user.email", "radicle@example.com"]
envs: [("HOME", "/tmp/subplotHReRlFilter-predicate-Tag"), ("RAD_HOME", "/tmp/subplotHReRlFilter-predicate-Tag/.radicle"), ("RAD_PASSPHRASE", "secret"), ("RAD_SOCKET", "synt.sock")]
cwd: "/tmp/subplotHReRlFilter-predicate-Tag"; exists? true
git exit code: Some(0)
git: stdout:

====================
git: stderr:

=====================
running command git ["config", "--global", "user.name", "TestyMcTestFace"]
envs: [("HOME", "/tmp/subplotHReRlFilter-predicate-Tag"), ("RAD_HOME", "/tmp/subplotHReRlFilter-predicate-Tag/.radicle"), ("RAD_PASSPHRASE", "secret"), ("RAD_SOCKET", "synt.sock")]
cwd: "/tmp/subplotHReRlFilter-predicate-Tag"; exists? true
git exit code: Some(0)
git: stdout:

====================
git: stderr:

=====================
running command git ["init", "-b", "main", "xyzzy"]
envs: [("HOME", "/tmp/subplotHReRlFilter-predicate-Tag"), ("RAD_HOME", "/tmp/subplotHReRlFilter-predicate-Tag/.radicle"), ("RAD_PASSPHRASE", "secret"), ("RAD_SOCKET", "synt.sock")]
cwd: "/tmp/subplotHReRlFilter-predicate-Tag"; exists? true
git exit code: Some(0)
git: stdout:
Initialized empty Git repository in /tmp/subplotHReRlFilter-predicate-Tag/xyzzy/.git/

====================
git: stderr:

=====================
running command git ["add", "."]
envs: [("HOME", "/tmp/subplotHReRlFilter-predicate-Tag"), ("RAD_HOME", "/tmp/subplotHReRlFilter-predicate-Tag/.radicle"), ("RAD_PASSPHRASE", "secret"), ("RAD_SOCKET", "synt.sock")]
cwd: "/tmp/subplotHReRlFilter-predicate-Tag/xyzzy"; exists? true
git exit code: Some(0)
git: stdout:

====================
git: stderr:

=====================
running command git ["commit", "-am", "test"]
envs: [("HOME", "/tmp/subplotHReRlFilter-predicate-Tag"), ("RAD_HOME", "/tmp/subplotHReRlFilter-predicate-Tag/.radicle"), ("RAD_PASSPHRASE", "secret"), ("RAD_SOCKET", "synt.sock")]
cwd: "/tmp/subplotHReRlFilter-predicate-Tag/xyzzy"; exists? true
git exit code: Some(0)
git: stdout:
[main (root-commit) 6a54004] test
 1 file changed, 1 insertion(+)
 create mode 100644 file.dat

====================
git: stderr:

=====================
running command rad ["init", "--name", "xyzzy", "--description=test", "--default-branch=main", "--private", "--no-confirm", "--no-seed"]
envs: [("HOME", "/tmp/subplotHReRlFilter-predicate-Tag"), ("RAD_HOME", "/tmp/subplotHReRlFilter-predicate-Tag/.radicle"), ("RAD_PASSPHRASE", "secret"), ("RAD_SOCKET", "synt.sock")]
cwd: "/tmp/subplotHReRlFilter-predicate-Tag/xyzzy"; exists? true
rad exit code: Some(0)
rad: stdout:

Initializing private radicle 👾 repository in /tmp/subplotHReRlFilter-predicate-Tag/xyzzy..

✓ Repository xyzzy created.

Your Repository ID (RID) is rad:z2aKHQHFaVQ7EPjXtjFAn17J5khFr.
You can show it any time by running `rad .` from this directory.

You have created a private repository.
This repository will only be visible to you, and to peers you explicitly allow.

To make it public, run `rad publish`.
To push changes, run `git push`.

====================
rad: stderr:

=====================
ci-broker.md:920:1:   step: given file config.yaml from filter-tag.yaml
ci-broker.md:922:1:   step: when I run cibtool --db ci-broker.db trigger --repo xyzzy
Running `cibtool` with args ["--db", "ci-broker.db", "trigger", "--repo", "xyzzy"]
Running in /tmp/subplotHReRlFilter-predicate-Tag
ENV: SHELL = /bin/sh
PATH: /workspace/cache/debug:/workspace/deps/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Exit code: 0
Stdout:
d8582049-c27d-4a62-bc32-d1023f4b5ee9

Stderr:
{"timestamp":"2025-04-04T09:06:54.575363Z","level":"WARN","fields":{"message":"Overwriting `seedingPolicy` configuration","log.target":"radicle","log.module_path":"radicle::profile::config","log.file":"/workspace/deps/registry/src/index.crates.io-6f17d22bba15001f/radicle-0.14.0/src/profile/config.rs","log.line":78}}


ci-broker.md:923:1:   step: when I run ./env.sh cib --config config.yaml queued
Running `/tmp/subplotHReRlFilter-predicate-Tag/env.sh` with args ["cib", "--config", "config.yaml", "queued"]
Running in /tmp/subplotHReRlFilter-predicate-Tag
ENV: SHELL = /bin/sh
PATH: /workspace/cache/debug:/workspace/deps/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Exit code: 0
Stdout:
env.sh starts

Stderr:
{"timestamp":"2025-04-04T09:06:55.004887Z","level":"INFO","fields":{"message":"CI broker starts","msg_id":"CibStart","kind":"startup","version":"0.15.1@6ec75d1"}}
{"timestamp":"2025-04-04T09:06:55.005340Z","level":"DEBUG","fields":{"message":"loaded configuration","msg_id":"CibConfig","kind":"startup","config":"Config { default_adapter: None, adapters: {\"default\": AdapterConfig { command: \"./adapter.sh\", env: {}, sensitive_env: {} }}, filters: None, triggers: Some([TriggerConfig { adapter: \"default\", filters: [Tag(\"v\\\\d+(\\\\.\\\\d+)\")] }]), report_dir: None, status_update_interval_seconds: None, db: \"ci-broker.db\", max_run_time: 3600s, queue_len_interval: 3600s }"}}
{"timestamp":"2025-04-04T09:06:55.006391Z","level":"WARN","fields":{"message":"Overwriting `seedingPolicy` configuration","log.target":"radicle","log.module_path":"radicle::profile::config","log.file":"/workspace/deps/registry/src/index.crates.io-6f17d22bba15001f/radicle-0.14.0/src/profile/config.rs","log.line":78}}
{"timestamp":"2025-04-04T09:06:55.006531Z","level":"TRACE","fields":{"message":"adapter configuration","msg_id":"AdapterConfig","kind":"debug","config":"Config { default_adapter: None, adapters: {\"default\": AdapterConfig { command: \"./adapter.sh\", env: {}, sensitive_env: {} }}, filters: None, triggers: Some([TriggerConfig { adapter: \"default\", filters: [Tag(\"v\\\\d+(\\\\.\\\\d+)\")] }]), report_dir: None, status_update_interval_seconds: None, db: \"ci-broker.db\", max_run_time: 3600s, queue_len_interval: 3600s }"}}
{"timestamp":"2025-04-04T09:06:55.006607Z","level":"INFO","fields":{"message":"broker database","msg_id":"BrokerDatabase","kind":"startup","filename":"ci-broker.db"}}
{"timestamp":"2025-04-04T09:06:55.008009Z","level":"WARN","fields":{"message":"Overwriting `seedingPolicy` configuration","log.target":"radicle","log.module_path":"radicle::profile::config","log.file":"/workspace/deps/registry/src/index.crates.io-6f17d22bba15001f/radicle-0.14.0/src/profile/config.rs","log.line":78}}
{"timestamp":"2025-04-04T09:06:55.008156Z","level":"INFO","fields":{"message":"start thread to process events until a shutdown event","msg_id":"QueueProcStart","kind":"startup"}}
{"timestamp":"2025-04-04T09:06:55.008313Z","level":"INFO","fields":{"message":"remove event from queue","msg_id":"QueueProcRemoveEvent","kind":"debug","id":"QueueId { id: \"d8582049-c27d-4a62-bc32-d1023f4b5ee9\" }"}}
{"timestamp":"2025-04-04T09:06:55.084435Z","level":"INFO","fields":{"message":"filter decision","msg_id":"QueueProcFilterDecision","kind":"filter_decision","event":"V1(BranchUpdated { from_node: PublicKey(z6MkkD2WLMhPs39kU7LMXWvPDjyyMHTFvM4CyVw6iB7HCxNa), repo: RepoId(rad:z2aKHQHFaVQ7EPjXtjFAn17J5khFr), branch: RefString(\"main\"), tip: Oid(6a54004277f5cc4288e95683574099fd9a312a95), old_tip: Oid(6a54004277f5cc4288e95683574099fd9a312a95) })","filter":"Tag(\"v\\\\d+(\\\\.\\\\d+)\")","allowed":"false"}}
{"timestamp":"2025-04-04T09:06:55.084693Z","level":"INFO","fields":{"message":"event notification channel disconnected","msg_id":"QueueProcDisconnected","kind":"debug"}}
{"timestamp":"2025-04-04T09:06:55.084731Z","level":"INFO","fields":{"message":"thread to process events ends","msg_id":"QueueProcEnd","kind":"debug","result":"Ok(())"}}
{"timestamp":"2025-04-04T09:06:55.085053Z","level":"WARN","fields":{"message":"not writing HTML report pages as output directory has not been set","msg_id":"PagesNoDirSet","kind":"debug"}}
{"timestamp":"2025-04-04T09:06:55.085098Z","level":"TRACE","fields":{"message":"interval for waiting between HTML page updates","msg_id":"PagesInterval","kind":"debug","interval":60}}
{"timestamp":"2025-04-04T09:06:55.085168Z","level":"INFO","fields":{"message":"start page updater thread","msg_id":"PagesStart","kind":"debug"}}
{"timestamp":"2025-04-04T09:06:55.085251Z","level":"INFO","fields":{"message":"end page updater thread","msg_id":"PagesEnd","kind":"debug","result":"Ok(())"}}
{"timestamp":"2025-04-04T09:06:55.085319Z","level":"INFO","fields":{"message":"CI broker ends successfully","msg_id":"CibEndSuccess","kind":"shutdown","success":true}}


ci-broker.md:924:1:   step: when I run cibtool --db ci-broker.db run list --json
Running `cibtool` with args ["--db", "ci-broker.db", "run", "list", "--json"]
Running in /tmp/subplotHReRlFilter-predicate-Tag
ENV: SHELL = /bin/sh
PATH: /workspace/cache/debug:/workspace/deps/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Exit code: 0
Stdout:
[]

Stderr:


ci-broker.md:925:1:   step: then stdout doesn't contain ""repo_name": "xyzzy""
ci-broker.md:927:1:   step: when I try to run cibtool --db ci-broker.db trigger --repo xyzzy --commit v1.0
Running `cibtool` with args ["--db", "ci-broker.db", "trigger", "--repo", "xyzzy", "--commit", "v1.0"]
Running in /tmp/subplotHReRlFilter-predicate-Tag
ENV: SHELL = /bin/sh
PATH: /workspace/cache/debug:/workspace/deps/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Exit code: 1
Stdout:

Stderr:
{"timestamp":"2025-04-04T09:06:55.104418Z","level":"WARN","fields":{"message":"Overwriting `seedingPolicy` configuration","log.target":"radicle","log.module_path":"radicle::profile::config","log.file":"/workspace/deps/registry/src/index.crates.io-6f17d22bba15001f/radicle-0.14.0/src/profile/config.rs","log.line":78}}
ERROR: failed to parse git ref as a commit id: v1.0
caused by: revspec 'v1.0' not found; class=Reference (4); code=NotFound (-3)


ci-broker.md:928:1:   step: then command fails
ci-broker.md:930:1:   step: when I run, in xyzzy, git tag -am "version 1.0" v1.0
Running `git` with args ["tag", "-am", "version 1.0", "v1.0"]
Running in /tmp/subplotHReRlFilter-predicate-Tag/xyzzy
ENV: SHELL = /bin/sh
PATH: /workspace/cache/debug:/workspace/deps/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Exit code: 128
Stdout:

Stderr:
Committer identity unknown

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@ambient-dev.(none)')


  return: Failure
thread 'filter_predicate_tag' panicked at /workspace/cache/debug/build/radicle-ci-broker-b7911711996922b8/out/ci-broker.rs:3429:20:
called `Result::unwrap()` on an `Err` value: "expected exit code 0, but had Some(128)"
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    filter_predicate_tag

test result: FAILED. 65 passed; 1 failed; 0 ignored; 0 measured; 1 filtered out; finished in 266.79s

error: test failed, to rerun pass `--test subplot`
   Doc-tests radicle_ci_broker

running 2 tests
test src/msg.rs - msg::RunId (line 49) ... 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 2.49s

error: 1 target failed:
    `--test subplot`
ERROR: Action failed: command failed: ["/bin/bash", "-c", "set -xeuo pipefail\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\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\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n\n"]
ERROR: command failed: ["/bin/bash", "-c", "set -xeuo pipefail\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\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\n\n# Clean up after tests and documentation building.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n\n"]
EXIT CODE: 1
[2025-04-04T09:08:32Z INFO  ambient] ambient ends successfully