CI run for rad:z3248z9KmBQ6Tf4mwXih1zKPtuSw5

Radicle repository id rad:z3248z9KmBQ6Tf4mwXih1zKPtuSw5

Triggered by

{
  "request": "trigger",
  "version": 1,
  "event_type": "patch",
  "repository": {
    "id": "rad:z3248z9KmBQ6Tf4mwXih1zKPtuSw5",
    "name": "clingwrap",
    "description": "Utilities for making command line apps in Rust",
    "private": false,
    "default_branch": "main",
    "delegates": [
      "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV"
    ]
  },
  "action": "Created",
  "patch": {
    "id": "8fea2c849eb521cc06fa2c2af197f888020d13f8",
    "author": {
      "id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
      "alias": "liw"
    },
    "title": "feat! simplify loading and validating configuration files",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "209b98bd14faf834ad8d512c5356f647a0b62d94",
    "after": "a7d1dacea9bbb9fba0e24a50437d59df19f65a78",
    "commits": [
      "a7d1dacea9bbb9fba0e24a50437d59df19f65a78"
    ],
    "target": "209b98bd14faf834ad8d512c5356f647a0b62d94",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "8fea2c849eb521cc06fa2c2af197f888020d13f8",
        "author": {
          "id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
          "alias": "liw"
        },
        "description": "Load, parse, merge, and validate configuration files in one type. Drop\nunnecessary type that only existed to parse, merge, and validate the\nfiles.\n\nWe had types ConfigLoader and ConfigMerger. The first type would read\nthe specified files, without parsing them, and then return a\nConfigMerger value. That value would parse each file, and merge all\nthe files into one, and validate that. This meant that the caller\nwould have to do two steps: first load, then validate.\n\nWe can now do this in one step, which is hopefully simpler. The\n`ConfigLoader::load` method now also parses each file (as JSON or\nYAML), merges the parsed files, and validates the result. This is\nconceptually simpler and less code to the caller.\n\nTo make sure life times of file data and parsed values are correct, we\nkeep the file data in memory until we've validated the merged files.\nThis should not be a significant cost, unless your configuration files\nare very, very large.\n\nFor life time reasons, the `ConfigFile::merge` method has also changed\nso that ownership of the other file is passed, not just a reference.\nThis is unlikely to be a burden, either.\n\nThis is a breaking change, because the API to the config module has\nchanged in backwards incompatible ways.\n\nSigned-off-by: Lars Wirzenius <liw@liw.fi>\nSponsored-by: author",
        "base": "209b98bd14faf834ad8d512c5356f647a0b62d94",
        "oid": "a7d1dacea9bbb9fba0e24a50437d59df19f65a78",
        "timestamp": 1752408823
      }
    ]
  }
}

Run log

[2025-07-13T12:14:05Z 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   950K  1 disk 
vdc    254:32   0   360K  1 disk 
vdd    254:48   0   9.3G  0 disk 
vde    254:64   0  46.6G  0 disk 
vdf    254:80   0 198.5M  1 disk 
INFO: Extracting tar archive from /dev/vdb
drwxr-xr-x _rad/_rad         0 2025-07-13 12:13 ./
-rw-r--r-- _rad/_rad       881 2025-07-13 12:13 ./plan.yaml
-rwxr-xr-x _rad/_rad    963160 2025-07-13 12:13 ./run-ci
INFO: Extracted files:
  3670026      4 drwxr-xr-x   2 1001     1001         4096 Jul 13 12:13 .
  3670023    944 -rwxr-xr-x   1 1001     1001       963160 Jul 13 12:13 ./run-ci
  3670022      4 -rw-r--r--   1 1001     1001          881 Jul 13 12:13 ./plan.yaml
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: cargo_build
- action: cargo_test
- 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=[]
   786433      4 drwxr-xr-x   6 root     root         4096 Jul 13 12:13 /workspace
   786580      4 drwxr-xr-x   3 root     root         4096 Jul 13 12:13 /workspace/deps
   786584      4 drwxr-xr-x   5 root     root         4096 Jul  7 05:07 /workspace/deps/registry
   786582     56 -rw-r--r--   1 root     root        57344 Jul 13 12:13 /workspace/deps/.global-cache
   786583      0 -rw-r--r--   1 root     root            0 Jul  7 05:07 /workspace/deps/.package-cache
   786581      0 -rw-r--r--   1 root     root            0 Jul  7 05:07 /workspace/deps/.package-cache-mutate
   790545      4 drwxr-xr-x   3 root     root         4096 Jul  7 05:11 /workspace/cache
   790546      4 drwxr-xr-x   7 root     root         4096 Jul  8 07:24 /workspace/cache/debug
   791320      4 -rw-r--r--   1 root     root         1034 Jul  8 07:24 /workspace/cache/.rustc_info.json
   786435      4 drwxr-xr-x   6 root     root         4096 Jul 13 12:13 /workspace/src
   786448      4 drwxr-xr-x   8 root     root         4096 Jul 13 12:13 /workspace/src/.git
   786579     12 -rw-r--r--   1 root     root        12044 Jul 13 12:13 /workspace/src/Cargo.lock
   786446      4 drwxr-xr-x   2 root     root         4096 Jul 13 12:13 /workspace/src/examples
   786445      4 -rw-r--r--   1 root     root          425 Jul 13 12:13 /workspace/src/Cargo.toml
   786578      4 -rw-r--r--   1 root     root          138 Jul 13 12:13 /workspace/src/Makefile
   786436      4 drwxr-xr-x   2 root     root         4096 Jul 13 12:13 /workspace/src/.radicle
   786438      4 drwxr-xr-x   2 root     root         4096 Jul 13 12:13 /workspace/src/src
   786443      4 -rw-r--r--   1 root     root         1484 Jul 13 12:13 /workspace/src/README.md
   786444      4 -rw-r--r--   1 root     root            8 Jul 13 12:13 /workspace/src/.gitignore
   786434      4 drwxr-xr-x   2 root     root         4096 Jul 13 12:13 /workspace/artifacts
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")]
    Checking clingwrap v0.1.0 (/workspace/src)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.65s
RUN: Action finished OK
RUN: Action CargoBuild
SPAWN: argv=["cargo", "build", "--offline", "--locked", "--workspace", "--all-targets"]
       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 clingwrap v0.1.0 (/workspace/src)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.85s
RUN: Action finished OK
RUN: Action CargoTest
SPAWN: argv=["cargo", "test", "--offline", "--locked", "--workspace"]
       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")]
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running unittests src/lib.rs (/workspace/cache/debug/deps/clingwrap-51b6662a25549e4e)

running 12 tests
test config::test::merge_simple ... ok
test config::test::overrides ... ok
test config::test::parse_json ... ok
test config::test::load_configs ... ok
test config::test::parse_yaml ... ok
test tildepathbuf::test::deser ... ok
test tildepathbuf::test::just_tilde ... ok
test tildepathbuf::test::no_tilde ... ok
test tildepathbuf::test::tilde_slash ... ok
test tildepathbuf::test::tilde_slash_with_home_from_var ... ok
test tildepathbuf::test::tilde_username ... ok
test config::test::builtin_defaults ... ok

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

   Doc-tests clingwrap

running 3 tests
test src/config.rs - config (line 75) ... ok
test src/runner.rs - runner (line 8) ... ok
test src/tildepathbuf.rs - tildepathbuf (line 9) ... ok

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

RUN: Action finished OK
RUN: Action TarCreate {
    archive: "/dev/vde",
    directory: "/workspace/cache",
}
RUN: Action finished OK
RUN: Action TarCreate {
    archive: "/dev/vdd",
    directory: "/workspace/artifacts",
}
RUN: Action finished OK
ambient-execute-plan ends
EXIT CODE: 0
[2025-07-13T12:14:05Z INFO  ambient] ambient ends successfully