rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwood1823f40381e9bf3697ea19029af16345adbb2c49
{
"request": "trigger",
"version": 1,
"event_type": "patch",
"repository": {
"id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
"name": "heartwood",
"description": "Radicle Heartwood Protocol & Stack",
"private": false,
"default_branch": "master",
"delegates": [
"did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
"did:key:z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW",
"did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
"did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
]
},
"action": "Created",
"patch": {
"id": "9693808cf8d289e2c8c4295025c66cddff16c2a9",
"author": {
"id": "did:key:z6Mkw3usifUm5d6vGonnyr2Z63P2UiWEJ6vXdyJ9b1osVYHE",
"alias": "fredix"
},
"title": "Add Dockerfiles",
"state": {
"status": "archived",
"conflicts": []
},
"before": "abf89438ea3e3b61dda68677761ba43772eac27d",
"after": "1823f40381e9bf3697ea19029af16345adbb2c49",
"commits": [
"1823f40381e9bf3697ea19029af16345adbb2c49"
],
"target": "6cfed884bf37cba1e0d8e97fa8b0e94df4a04b1f",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "9693808cf8d289e2c8c4295025c66cddff16c2a9",
"author": {
"id": "did:key:z6Mkw3usifUm5d6vGonnyr2Z63P2UiWEJ6vXdyJ9b1osVYHE",
"alias": "fredix"
},
"description": "",
"base": "abf89438ea3e3b61dda68677761ba43772eac27d",
"oid": "3249ed47dbf4ef7350f17ce5a4db695d2ec712da",
"timestamp": 1714597166
},
{
"id": "69e1a512a4f9111c13c821db7bf7089eba22f02c",
"author": {
"id": "did:key:z6Mkw3usifUm5d6vGonnyr2Z63P2UiWEJ6vXdyJ9b1osVYHE",
"alias": "fredix"
},
"description": "added epoch on radicle-httpd image",
"base": "abf89438ea3e3b61dda68677761ba43772eac27d",
"oid": "1823f40381e9bf3697ea19029af16345adbb2c49",
"timestamp": 1714598209
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "1eb40610-a533-4279-850f-d18a423eca56"
},
"info_url": "https://cci.rad.levitte.org//1eb40610-a533-4279-850f-d18a423eca56.html"
}
Started at: 2025-10-21 20:53:21.661100+02:00
Commands:
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 .
✓ Creating checkout in ./...
✓ Remote cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT added
✓ Remote-tracking branch cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/master created for z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT
✓ Remote cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW added
✓ Remote-tracking branch cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW/master created for z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW
✓ Remote fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM added
✓ Remote-tracking branch fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM/master created for z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM
✓ Remote erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz added
✓ Remote-tracking branch erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz/master created for z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz
✓ Remote lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz added
✓ Remote-tracking branch lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz/master created for z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz
✓ Repository successfully cloned under /opt/radcis/ci.rad.levitte.org/cci/state/1eb40610-a533-4279-850f-d18a423eca56/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 125 issues · 15 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout 9693808cf8d289e2c8c4295025c66cddff16c2a9
✓ Switched to branch patch/9693808 at revision 69e1a51
✓ Branch patch/9693808 setup to track rad/patches/9693808cf8d289e2c8c4295025c66cddff16c2a9
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout 1823f40381e9bf3697ea19029af16345adbb2c49
HEAD is now at 1823f403 added 2 Dockerfile, a specific docker-compose and a shell script to build docker images and push them to hub.docker.com
Exit code: 0
$ git show 1823f40381e9bf3697ea19029af16345adbb2c49
commit 1823f40381e9bf3697ea19029af16345adbb2c49
Author: fredix <fredix@protonmail.com>
Date: Wed May 1 22:48:00 2024 +0200
added 2 Dockerfile, a specific docker-compose and a shell script to build docker images and push them to hub.docker.com
added epoch on radicle-httpd image
diff --git a/build-hub-docker.sh b/build-hub-docker.sh
new file mode 100644
index 00000000..e6d9ef9c
--- /dev/null
+++ b/build-hub-docker.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+# Change env var according your config
+# USER= your user account on hub.docker.com
+export USER=fredix
+# RADICLE_IMAGE_TAG= version release when you build
+export RADICLE_IMAGE_TAG=1.0.0-rc.7
+
+export rev_version="$(git rev-parse --short HEAD)"
+#export rad_version="$(build/version)"
+export rad_version=$RADICLE_IMAGE_TAG
+export epoch_timestamp=$(git log -1 --pretty=%ct)
+
+docker compose -f docker-compose-hub-docker.yml build
+
+docker push $USER/radicle-node:$RADICLE_IMAGE_TAG
+docker push $USER/radicle-httpd:$RADICLE_IMAGE_TAG
diff --git a/docker-compose-hub-docker.yml b/docker-compose-hub-docker.yml
new file mode 100644
index 00000000..40081992
--- /dev/null
+++ b/docker-compose-hub-docker.yml
@@ -0,0 +1,21 @@
+version: "3.7"
+services:
+ radicle-node:
+ image: ${USER}/radicle-node:${RADICLE_IMAGE_TAG:-latest}
+ command: ${RADICLE_NODE_OPTIONS}
+ build:
+ dockerfile: ./radicle-node/Dockerfile
+ context: .
+ args:
+ rev: ${rev_version}
+ version: ${rad_version}
+ epoch: ${epoch_timestamp}
+ radicle-httpd:
+ image: ${USER}/radicle-httpd:${RADICLE_IMAGE_TAG:-latest}
+ build:
+ dockerfile: ./radicle-httpd/Dockerfile
+ context: .
+ args:
+ rev: ${rev_version}
+ version: ${rad_version}
+ epoch: ${epoch_timestamp}
diff --git a/radicle-httpd/Dockerfile b/radicle-httpd/Dockerfile
new file mode 100644
index 00000000..08492d4f
--- /dev/null
+++ b/radicle-httpd/Dockerfile
@@ -0,0 +1,28 @@
+# Build
+FROM rust:alpine as build
+RUN apk add --no-cache musl-dev
+COPY . /workdir
+RUN rustup target add x86_64-unknown-linux-musl
+WORKDIR /workdir/radicle-httpd
+ARG rev
+ARG version
+ENV GIT_HEAD=$rev
+ENV RADICLE_VERSION=$version
+ENV SOURCE_DATE_EPOCH=$epoch
+ENV GIT_COMMIT_TIME=$epoch
+RUN RUSTFLAGS=-Cforce-frame-pointers=yes \
+ cargo build \
+ --profile=container \
+ --target=x86_64-unknown-linux-musl
+RUN objcopy \
+ --compress-debug-sections \
+ /workdir/target/x86_64-unknown-linux-musl/container/radicle-httpd \
+ /workdir/target/x86_64-unknown-linux-musl/container/radicle-httpd.compressed
+# Run
+FROM alpine
+RUN apk add git
+COPY --from=build \
+ /workdir/target/x86_64-unknown-linux-musl/container/radicle-httpd.compressed \
+ /usr/local/bin/radicle-httpd
+WORKDIR /app
+ENTRYPOINT ["/usr/local/bin/radicle-httpd", "--listen", "0.0.0.0:8080"]
diff --git a/radicle-node/Dockerfile b/radicle-node/Dockerfile
new file mode 100644
index 00000000..fe007800
--- /dev/null
+++ b/radicle-node/Dockerfile
@@ -0,0 +1,28 @@
+# Build
+FROM rust:alpine as build
+RUN apk add --no-cache musl-dev
+COPY . /workdir
+RUN rustup target add x86_64-unknown-linux-musl
+WORKDIR /workdir/radicle-node
+ARG rev
+ARG version
+ENV GIT_HEAD=$rev
+ENV RADICLE_VERSION=$version
+ENV SOURCE_DATE_EPOCH=$epoch
+ENV GIT_COMMIT_TIME=$epoch
+RUN RUSTFLAGS=-Cforce-frame-pointers=yes \
+ cargo build \
+ --profile=container \
+ --target=x86_64-unknown-linux-musl
+RUN objcopy \
+ --compress-debug-sections \
+ /workdir/target/x86_64-unknown-linux-musl/container/radicle-node \
+ /workdir/target/x86_64-unknown-linux-musl/container/radicle-node.compressed
+# Run
+FROM alpine
+RUN apk add git
+COPY --from=build \
+ /workdir/target/x86_64-unknown-linux-musl/container/radicle-node.compressed \
+ /usr/local/bin/radicle-node
+WORKDIR /app
+ENTRYPOINT ["/usr/local/bin/radicle-node", "--listen", "0.0.0.0:8080"]
Exit code: 0
shell: 'cargo --version rustc --version cargo fmt --check cargo clippy --all-targets --workspace -- --deny clippy::all cargo build --all-targets --workspace cargo doc --workspace cargo test --workspace --no-fail-fast '
Commands:
$ podman run --name 1eb40610-a533-4279-850f-d18a423eca56 -v /opt/radcis/ci.rad.levitte.org/cci/state/1eb40610-a533-4279-850f-d18a423eca56/s:/1eb40610-a533-4279-850f-d18a423eca56/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/1eb40610-a533-4279-850f-d18a423eca56/w:/1eb40610-a533-4279-850f-d18a423eca56/w -w /1eb40610-a533-4279-850f-d18a423eca56/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:bookworm bash /1eb40610-a533-4279-850f-d18a423eca56/s/script.sh
+ cargo --version
info: syncing channel updates for '1.77-x86_64-unknown-linux-gnu'
info: latest update on 2024-04-09, rust version 1.77.2 (25ef9e3d8 2024-04-09)
info: downloading component 'cargo'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: installing component 'cargo'
info: installing component 'rust-std'
info: installing component 'rustc'
cargo 1.77.2 (e52e36006 2024-03-26)
+ rustc --version
rustc 1.77.2 (25ef9e3d8 2024-04-09)
+ cargo fmt --check
error: 'cargo-fmt' is not installed for the toolchain '1.77-x86_64-unknown-linux-gnu'.
To install, run `rustup component add --toolchain 1.77-x86_64-unknown-linux-gnu rustfmt`
Exit code: 1
{
"response": "finished",
"result": "failure"
}