rad:z27Mx16VDZt2nwGygkyPCbK9ppuB radicle-devcontainer-ci7bc1e3def0c387a3ed99fe0fc3971e5e269644dedid:key:z6MkiaGEHcXc9v3ou5ZvfnRC8xBrGoEFWqvPQPTLEU8bUt8C)main{
"request": "trigger",
"version": 1,
"event_type": "push",
"repository": {
"id": "rad:z27Mx16VDZt2nwGygkyPCbK9ppuB",
"name": "radicle-devcontainer-ci",
"description": "Radicle CI broker adapter that runs jobs in a repository's devcontainer",
"private": false,
"default_branch": "main",
"delegates": [
"did:key:z6MkiaGEHcXc9v3ou5ZvfnRC8xBrGoEFWqvPQPTLEU8bUt8C"
]
},
"pusher": {
"id": "did:key:z6MkiaGEHcXc9v3ou5ZvfnRC8xBrGoEFWqvPQPTLEU8bUt8C",
"alias": "nolan"
},
"before": "7bc1e3def0c387a3ed99fe0fc3971e5e269644de",
"after": "7bc1e3def0c387a3ed99fe0fc3971e5e269644de",
"branch": "main",
"commits": [
"7bc1e3def0c387a3ed99fe0fc3971e5e269644de"
]
}
$ rad clone rad:z27Mx16VDZt2nwGygkyPCbK9ppuB .
✓ Creating checkout in ./... ✓ Remote nolan@z6MkiaGEHcXc9v3ou5ZvfnRC8xBrGoEFWqvPQPTLEU8bUt8C added ✓ Remote-tracking branch nolan@z6MkiaGEHcXc9v3ou5ZvfnRC8xBrGoEFWqvPQPTLEU8bUt8C/main created for z6MkiaGEHcXc9v3ou5ZvfnRC8xBrGoEFWqvPQPTLEU8bUt8C ✓ Repository successfully cloned under /var/lib/radicle-ci/adapters/devcontainer/devcontainer/state/29a5eb6a-3a3f-417b-99e8-653faf4770e9/w/ ╭─────────────────────────────────────────────────────────────────────────╮ │ radicle-devcontainer-ci │ │ Radicle CI broker adapter that runs jobs in a repository's devcontainer │ │ 0 issues · 0 patches │ ╰─────────────────────────────────────────────────────────────────────────╯ Run `cd ./.` to go to the repository directory.
$ git config advice.detachedHead false
$ git checkout 7bc1e3def0c387a3ed99fe0fc3971e5e269644de
HEAD is now at 7bc1e3d fix: only change user to preserve group ownership in workspaces
#!/usr/bin/env bash
set -xeuo pipefail
mise install
eval "$(mise activate bash --shims)"
cargo fmt --check
cargo clippy --all-targets
cargo test
# The Determinate installer's profile hook doesn't run in this non-login
# shell, and there is no nix daemon under --init none.
export PATH=/nix/var/nix/profiles/default/bin:$PATH
export NIX_REMOTE=local
nix fmt -- --ci
# Evaluates the NixOS module and its invariants. Must precede flake check:
# that command evaluates with a read-only store and fails on naersk's
# filtered sources ("path ... is not valid") until an ordinary eval has
# registered them.
nix eval --raw .#checks.x86_64-linux.nixos-module.drvPath
nix flake check --no-build
# Prove the module-rendered settings parse as the Rust Config: extract the
# 'ci' instance's config from the nixos-module check's JSON (valid YAML
# input, since YAML is a JSON superset) and run it through the adapter's
# own validator. Catches Nix<->Rust schema drift with no extra nix builds.
nix eval --raw .#checks.x86_64-linux.nixos-module.text --apply 'text: builtins.toJSON (builtins.fromJSON text).ci.config' > target/nixos-module-ci.yaml
cargo run -- --config target/nixos-module-ci.yaml config
# Full broker + adapter end-to-end test in NixOS VMs. Only worth running
# with hardware acceleration; hosts without /dev/kvm skip it (they cannot
# reach this point anyway while runArgs passes the device unconditionally).
if [ -e /dev/kvm ]; then
nix build -L .#checks.x86_64-linux.e2e
fi
mounting radicle-ci-cache-0f21906dcab9-2b3df4dad4fd479c at /workspaces/w/target mounting radicle-ci-cache-0f21906dcab9-57fdcb11b8922a0f at /nix
$ /nix/store/h111xm96sylafdn3kgixgxyfs7af600r-podman-5.8.2/bin/podman volume rm radicle-ci-cache-0f21906dcab9-37614f8a2c9b734f
radicle-ci-cache-0f21906dcab9-37614f8a2c9b734f
$ /nix/store/h111xm96sylafdn3kgixgxyfs7af600r-podman-5.8.2/bin/podman volume create --label xyz.radicle.ci.cache=rad:z27Mx16VDZt2nwGygkyPCbK9ppuB radicle-ci-cache-0f21906dcab9-57fdcb11b8922a0f
radicle-ci-cache-0f21906dcab9-57fdcb11b8922a0f
$ /nix/store/ik0xcys4cqjr4hdywzinrylm9sm48bvc-devcontainer-0.87.0/bin/devcontainer up --docker-path /nix/store/h111xm96sylafdn3kgixgxyfs7af600r-podman-5.8.2/bin/podman --workspace-folder /var/lib/radicle-ci/adapters/devcontainer/devcontainer/state/29a5eb6a-3a3f-417b-99e8-653faf4770e9/w --id-label devcontainer.local_folder=/var/lib/radicle-ci/adapters/devcontainer/devcontainer/state/29a5eb6a-3a3f-417b-99e8-653faf4770e9/w --id-label xyz.radicle.ci.run=29a5eb6a-3a3f-417b-99e8-653faf4770e9 --mount type=volume,source=radicle-ci-cache-0f21906dcab9-2b3df4dad4fd479c,target=/workspaces/w/target --mount type=volume,source=radicle-ci-cache-0f21906dcab9-57fdcb11b8922a0f,target=/nix
[2026-07-07T14:08:06.752Z] @devcontainers/cli 0.87.0. Node.js v24.16.0. linux 6.18.37 x64.
(node:2709596) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
(Use `node --trace-deprecation ...` to show where the warning was created)
[2026-07-07T14:08:07.131Z] Resolving Feature dependencies for 'ghcr.io/devcontainers/features/rust:1'...
[2026-07-07T14:08:09.329Z] Resolving Feature dependencies for 'ghcr.io/devcontainers-extra/features/mise:1'...
[2026-07-07T14:08:10.098Z] Soft-dependency 'ghcr.io/devcontainers/features/common-utils' is not required. Removing from installation order...
[2026-07-07T14:08:10.098Z] Soft-dependency 'ghcr.io/devcontainers-extra/features/gh-release' is not required. Removing from installation order...
[2026-07-07T14:08:10.732Z] Files to omit: ''
[2026-07-07T14:08:12.236Z] Files to omit: ''
[2026-07-07T14:08:12.272Z] Start: Run: /nix/store/h111xm96sylafdn3kgixgxyfs7af600r-podman-5.8.2/bin/podman buildx build --load --build-arg BUILDKIT_INLINE_CACHE=1 --build-context dev_containers_feature_content_source=/tmp/devcontainercli-radicle/container-features/0.87.0-1783433287127 --build-arg _DEV_CONTAINERS_BASE_IMAGE=debian:13 --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp --target dev_containers_target_stage -f /tmp/devcontainercli-radicle/container-features/0.87.0-1783433287127/Dockerfile.extended -t vsc-w-24bf4bcd7fa2fba6913f6dfda80482bbd81df64d8026ff5e989a56ea667a5af7-features /tmp/devcontainercli-radicle/empty-folder
[2026-07-07T14:08:12.453Z] [1/2] STEP 1/4: FROM debian:13 AS dev_containers_feature_content_normalize
[2026-07-07T14:08:14.855Z] [1/2] STEP 2/4: USER root
[2026-07-07T14:08:14.857Z] --> Using cache 66603368ba0af0aad9e7659dc6bf66628388a3512261f9fcf4aecb484ea71283
--> 66603368ba0a
[2026-07-07T14:08:14.864Z] [1/2] STEP 3/4: COPY --from=dev_containers_feature_content_source devcontainer-features.builtin.env /tmp/build-features/
[2026-07-07T14:08:15.019Z] --> Using cache 450ba763ed74bd2163500474d232a4a5c52c74fdbb0aafa8c2c9383e37296556
--> 450ba763ed74
[2026-07-07T14:08:15.036Z] [1/2] STEP 4/4: RUN chmod -R 0755 /tmp/build-features/
[2026-07-07T14:08:15.038Z] --> Using cache fa697464e89584f4d3cacdfb6aa5dc186cf0dcfb4b9bd31307b62c099783afe1
--> fa697464e895
[2026-07-07T14:08:15.045Z] [2/2] STEP 1/13: FROM debian:13 AS dev_containers_target_stage
[2026-07-07T14:08:16.818Z] [2/2] STEP 2/13: USER root
[2026-07-07T14:08:16.820Z] --> Using cache 66603368ba0af0aad9e7659dc6bf66628388a3512261f9fcf4aecb484ea71283
--> 66603368ba0a
[2026-07-07T14:08:16.827Z] [2/2] STEP 3/13: RUN mkdir -p /tmp/dev-container-features
[2026-07-07T14:08:16.828Z] --> Using cache bafa148706fee6c949e424a3c61d893722f4e10f5b86f65551f5b2b970ea5d5d
--> bafa148706fe
[2026-07-07T14:08:16.835Z] [2/2] STEP 4/13: COPY --from=dev_containers_feature_content_normalize /tmp/build-features/ /tmp/dev-container-features
[2026-07-07T14:08:16.988Z] --> Using cache db84ec134af7f940977d484b0923488e94e31410ee0e492b5d896cb5876fe047
--> db84ec134af7
[2026-07-07T14:08:16.995Z] [2/2] STEP 5/13: RUN echo "_CONTAINER_USER_HOME=$( (command -v getent >/dev/null 2>&1 && getent passwd 'root' || grep -E '^root|^[^:]*:[^:]*:root:' /etc/passwd || true) | cut -d: -f6)" >> /tmp/dev-container-features/devcontainer-features.builtin.env && echo "_REMOTE_USER_HOME=$( (command -v getent >/dev/null 2>&1 && getent passwd 'root' || grep -E '^root|^[^:]*:[^:]*:root:' /etc/passwd || true) | cut -d: -f6)" >> /tmp/dev-container-features/devcontainer-features.builtin.env
[2026-07-07T14:08:17.002Z] --> Using cache 9624121ed1daaa154a4684fc2067caecc2c8474f79414cab012102caedb60827
--> 9624121ed1da
[2026-07-07T14:08:17.011Z] [2/2] STEP 6/13: RUN --mount=type=bind,from=dev_containers_feature_content_source,source=mise_0,target=/tmp/build-features-src/mise_0 cp -ar /tmp/build-features-src/mise_0 /tmp/dev-container-features && chmod -R 0755 /tmp/dev-container-features/mise_0 && cd /tmp/dev-container-features/mise_0 && chmod +x ./devcontainer-features-install.sh && ./devcontainer-features-install.sh && rm -rf /tmp/dev-container-features/mise_0
[2026-07-07T14:08:17.017Z] --> Using cache 6494a69032064ec7cf816993cf24ccd7aab27abc3c4062ca77ad3f2474625cbd
--> 6494a6903206
[2026-07-07T14:08:17.023Z] [2/2] STEP 7/13: ENV CARGO_HOME="/usr/local/cargo"
[2026-07-07T14:08:17.023Z] --> Using cache 453aa63748492e197c51b44ea58aed91297e883c4444ac678138a9dacdab9ef5
--> 453aa6374849
[2026-07-07T14:08:17.028Z] [2/2] STEP 8/13: ENV RUSTUP_HOME="/usr/local/rustup"
[2026-07-07T14:08:17.029Z] --> Using cache 8bd587404275f55bd1a75f012bd0c54016093b400c92bc62a5b407cf59d74267
--> 8bd587404275
[2026-07-07T14:08:17.034Z] [2/2] STEP 9/13: ENV PATH="/usr/local/cargo/bin:${PATH}"
[2026-07-07T14:08:17.034Z] --> Using cache abd0f6576b8a9e36cc64d5adfa26a8c257867fdb5fd6f3b8a8f59f0821e3df65
--> abd0f6576b8a
[2026-07-07T14:08:17.039Z] [2/2] STEP 10/13: RUN --mount=type=bind,from=dev_containers_feature_content_source,source=rust_1,target=/tmp/build-features-src/rust_1 cp -ar /tmp/build-features-src/rust_1 /tmp/dev-container-features && chmod -R 0755 /tmp/dev-container-features/rust_1 && cd /tmp/dev-container-features/rust_1 && chmod +x ./devcontainer-features-install.sh && ./devcontainer-features-install.sh && rm -rf /tmp/dev-container-features/rust_1
[2026-07-07T14:08:17.041Z] --> Using cache 4dc1aff3e936316e4d61519899caec26b7aa5fc0481d5de23ac973be9b675e6f
--> 4dc1aff3e936
[2026-07-07T14:08:17.045Z] [2/2] STEP 11/13: ARG _DEV_CONTAINERS_IMAGE_USER=root
[2026-07-07T14:08:17.045Z] --> Using cache e96a495c7b1ac9c3a9b725b59bd604e0fdb9b38711c43b0ce4a46979b96b8470
--> e96a495c7b1a
[2026-07-07T14:08:17.050Z] [2/2] STEP 12/13: USER $_DEV_CONTAINERS_IMAGE_USER
[2026-07-07T14:08:17.050Z] --> Using cache b4fe84370f55480c8f874879ea8ac20fc7f4e35b8df041f6cb442105ff3f0cc2
--> b4fe84370f55
[2026-07-07T14:08:17.055Z] [2/2] STEP 13/13: LABEL devcontainer.metadata="[ {\"id\":\"ghcr.io/devcontainers-extra/features/mise:1\"}, {\"id\":\"ghcr.io/devcontainers/features/rust:1\",\"capAdd\":[\"SYS_PTRACE\"],\"securityOpt\":[\"seccomp=unconfined\"],\"customizations\":{\"vscode\":{\"extensions\":[\"vadimcn.vscode-lldb\",\"rust-lang.rust-analyzer\",\"tamasfe.even-better-toml\"],\"settings\":{\"files.watcherExclude\":{\"**/target/**\":true},\"github.copilot.chat.codeGeneration.instructions\":[{\"text\":\"This dev container includes Rust, common Rust utilities, and needed dependencies pre-installed and available on the `PATH`, along with the Rust language extension for Rust development.\"}]}}}}, {\"postCreateCommand\":\"sh .devcontainer/post-create.sh\"} ]"
[2026-07-07T14:08:17.055Z] --> Using cache 1f141192719e6ebcc40a0c7fc97882ddc6c0ca968f76ac430cd4b0514bc1f2c9
[2/2] COMMIT vsc-w-24bf4bcd7fa2fba6913f6dfda80482bbd81df64d8026ff5e989a56ea667a5af7-features
[2026-07-07T14:08:17.082Z] --> 1f141192719e
[Warning] one or more build args were not consumed: [BUILDKIT_INLINE_CACHE _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE]
[2026-07-07T14:08:17.082Z] Successfully tagged localhost/vsc-w-24bf4bcd7fa2fba6913f6dfda80482bbd81df64d8026ff5e989a56ea667a5af7-features:latest
Successfully tagged localhost/vsc-w-19694b3639ed3d7a4c1ae588071c8947fe7547aad8aaf9cd3a60de487ec049d5-features:latest
[2026-07-07T14:08:17.082Z] Successfully tagged localhost/vsc-w-3dbf61905667b3ffd0fe70cb279479133b9777f0d5396b739a80f00d42a82e99-features:latest
Successfully tagged localhost/vsc-w-2184ab699f123f06eb77d125f333850bd2489eac0749b7383d3d6ea77d9aa9c4-features:latest
[2026-07-07T14:08:17.110Z] 1f141192719e6ebcc40a0c7fc97882ddc6c0ca968f76ac430cd4b0514bc1f2c9
[2026-07-07T14:08:17.115Z] Start: Run: /nix/store/h111xm96sylafdn3kgixgxyfs7af600r-podman-5.8.2/bin/podman run --sig-proxy=false -a STDOUT -a STDERR --mount type=bind,source=/var/lib/radicle-ci/adapters/devcontainer/devcontainer/state/29a5eb6a-3a3f-417b-99e8-653faf4770e9/w,target=/workspaces/w --mount type=volume,src=radicle-ci-cache-0f21906dcab9-2b3df4dad4fd479c,dst=/workspaces/w/target --mount type=volume,src=radicle-ci-cache-0f21906dcab9-57fdcb11b8922a0f,dst=/nix -l devcontainer.local_folder=/var/lib/radicle-ci/adapters/devcontainer/devcontainer/state/29a5eb6a-3a3f-417b-99e8-653faf4770e9/w -l xyz.radicle.ci.run=29a5eb6a-3a3f-417b-99e8-653faf4770e9 --security-opt label=disable --device=/dev/kvm --cap-add SYS_PTRACE --security-opt seccomp=unconfined --entrypoint /bin/sh vsc-w-24bf4bcd7fa2fba6913f6dfda80482bbd81df64d8026ff5e989a56ea667a5af7-features -c echo Container started
[2026-07-07T14:08:17.286Z] Container started
[2026-07-07T14:08:17.580Z] Running the postCreateCommand from devcontainer.json...
[2026-07-07T14:08:18.570Z] info: downloading the Determinate Nix Installer
[2026-07-07T14:08:21.790Z] INFO nix-installer v3.21.2
[2026-07-07T14:08:22.319Z] INFO Step: Create directory `/nix`
INFO Step: Install Determinate Nixd
[2026-07-07T14:08:22.351Z] INFO Step: Provision Nix
[2026-07-07T14:08:23.978Z] INFO Step: Create build users (UID 30001-30032) and group (GID 30000)
[2026-07-07T14:08:25.820Z] INFO Step: Configure Nix
[2026-07-07T14:08:26.487Z] INFO Step: Create directory `/etc/tmpfiles.d`
INFO Step: Configure the Determinate Nix daemon
INFO Step: Cleanup
[2026-07-07T14:08:26.489Z] INFO Running self test for shell sh
[2026-07-07T14:08:26.512Z] INFO Running self test for shell bash
[2026-07-07T14:08:26.531Z] WARN SelfTest([ShellFailed { shell: Sh, command: "\"sh\" \"-lc\" \"exec nix build --option substitute false --option post-build-hook '' --no-link --expr 'derivation { name = \\\"self-test-sh-1783433306489\\\"; system = \\\"x86_64-linux\\\"; builder = \\\"/bin/sh\\\"; args = [\\\"-c\\\" \\\"echo hello > \\\\$out\\\"]; }'\"", output: Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "error: cannot connect to socket at '/nix/var/nix/daemon-socket/socket': No such file or directory\n" } }, ShellFailed { shell: Bash, command: "\"bash\" \"-lc\" \"exec nix build --option substitute false --option post-build-hook '' --no-link --expr 'derivation { name = \\\"self-test-bash-1783433306512\\\"; system = \\\"x86_64-linux\\\"; builder = \\\"/bin/sh\\\"; args = [\\\"-c\\\" \\\"echo hello > \\\\$out\\\"]; }'\"", output: Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "error: cannot connect to socket at '/nix/var/nix/daemon-socket/socket': No such file or directory\n" } }])
[2026-07-07T14:08:26.550Z] Nix was installed successfully!
To get started using Nix, open a new shell or run `. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh`
{"outcome":"success","containerId":"523318f1e5c3291c4c93edad737a790952d18d864000eb758a6d4f1cd8ff6518","remoteUser":"root","remoteWorkspaceFolder":"/workspaces/w"}
gave the workspace (owner uid 979) to the container user (uid 0) for the run
$ /nix/store/ik0xcys4cqjr4hdywzinrylm9sm48bvc-devcontainer-0.87.0/bin/devcontainer exec --docker-path /nix/store/h111xm96sylafdn3kgixgxyfs7af600r-podman-5.8.2/bin/podman --workspace-folder /var/lib/radicle-ci/adapters/devcontainer/devcontainer/state/29a5eb6a-3a3f-417b-99e8-653faf4770e9/w --id-label devcontainer.local_folder=/var/lib/radicle-ci/adapters/devcontainer/devcontainer/state/29a5eb6a-3a3f-417b-99e8-653faf4770e9/w --id-label xyz.radicle.ci.run=29a5eb6a-3a3f-417b-99e8-653faf4770e9 /bin/sh -c echo "radicle-ci-ownership uid=$(id -u) gid=$(id -g) owner=$(stat -c %u .) group=$(stat -c %g .)"
radicle-ci-ownership uid=0 gid=0 owner=979 group=974
$ /nix/store/h111xm96sylafdn3kgixgxyfs7af600r-podman-5.8.2/bin/podman exec --user 0 523318f1e5c3291c4c93edad737a790952d18d864000eb758a6d4f1cd8ff6518 chown -R 0:0 /workspaces/w
$ /nix/store/ik0xcys4cqjr4hdywzinrylm9sm48bvc-devcontainer-0.87.0/bin/devcontainer exec --docker-path /nix/store/h111xm96sylafdn3kgixgxyfs7af600r-podman-5.8.2/bin/podman --workspace-folder /var/lib/radicle-ci/adapters/devcontainer/devcontainer/state/29a5eb6a-3a3f-417b-99e8-653faf4770e9/w --id-label devcontainer.local_folder=/var/lib/radicle-ci/adapters/devcontainer/devcontainer/state/29a5eb6a-3a3f-417b-99e8-653faf4770e9/w --id-label xyz.radicle.ci.run=29a5eb6a-3a3f-417b-99e8-653faf4770e9 --remote-env RADICLE_CI_RUN_ID=29a5eb6a-3a3f-417b-99e8-653faf4770e9 --remote-env RADICLE_CI_EVENT=push --remote-env RADICLE_CI_COMMIT=7bc1e3def0c387a3ed99fe0fc3971e5e269644de --remote-env RADICLE_CI_REPOSITORY=rad:z27Mx16VDZt2nwGygkyPCbK9ppuB --remote-env RADICLE_CI_AUTHOR=did:key:z6MkiaGEHcXc9v3ou5ZvfnRC8xBrGoEFWqvPQPTLEU8bUt8C --remote-env RADICLE_CI_AUTHOR_ALIAS=nolan --remote-env RADICLE_CI_BRANCH=main /bin/sh -c script="$(mktemp)" && cat >"$script" && chmod +x "$script" && exec "$script"
[2026-07-07T14:08:27.892Z] Error: Dev container config (/var/lib/radicle-ci/adapters/devcontainer/devcontainer/state/29a5eb6a-3a3f-417b-99e8-653faf4770e9/w/.devcontainer/devcontainer.json) not found.
at iu (/nix/store/ik0xcys4cqjr4hdywzinrylm9sm48bvc-devcontainer-0.87.0/libexec/dist/spec-node/devContainersSpecCLI.js:671:6125)
at async d5 (/nix/store/ik0xcys4cqjr4hdywzinrylm9sm48bvc-devcontainer-0.87.0/libexec/dist/spec-node/devContainersSpecCLI.js:671:3985)
at async /nix/store/ik0xcys4cqjr4hdywzinrylm9sm48bvc-devcontainer-0.87.0/libexec/dist/spec-node/devContainersSpecCLI.js:485:1917
$ /nix/store/h111xm96sylafdn3kgixgxyfs7af600r-podman-5.8.2/bin/podman exec --user 0 523318f1e5c3291c4c93edad737a790952d18d864000eb758a6d4f1cd8ff6518 chown -R 979:974 /workspaces/w
$ /nix/store/h111xm96sylafdn3kgixgxyfs7af600r-podman-5.8.2/bin/podman rm --force 523318f1e5c3291c4c93edad737a790952d18d864000eb758a6d4f1cd8ff6518
523318f1e5c3291c4c93edad737a790952d18d864000eb758a6d4f1cd8ff6518