diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6236f67..d7911f0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,13 +42,16 @@ jobs: run: | test "$(find dist -maxdepth 1 -name '*.tar.gz' | wc -l)" -eq 5 archive="$(find dist -maxdepth 1 -name '*_linux_amd64.tar.gz')" - tar -tzf "$archive" | grep -q '/spoold$' - tar -tzf "$archive" | grep -q '/spoolctl$' + listing="$(mktemp)" + tar -tzf "$archive" > "$listing" + grep -q '/spoold$' "$listing" + grep -q '/spoolctl$' "$listing" (cd dist && sha256sum --check checksums.txt) + version="$(jq -r .version dist/metadata.json)" unpacked="$(mktemp -d)" tar -xzf "$archive" -C "$unpacked" - "$(find "$unpacked" -type f -name spoold)" -version | grep -q 'spoold 0.0.0-SNAPSHOT' - "$(find "$unpacked" -type f -name spoolctl)" version | grep -q 'spoolctl 0.0.0-SNAPSHOT' + "$(find "$unpacked" -type f -name spoold)" -version | grep -Fq "spoold ${version}" + "$(find "$unpacked" -type f -name spoolctl)" version | grep -Fq "spoolctl ${version}" - name: Verify installer run: | installed="$(mktemp -d)" @@ -61,9 +64,10 @@ jobs: "$installed/spoolctl" version | grep -q "spoolctl ${version}" - name: Verify release container run: | + version="$(jq -r .version dist/metadata.json)" image="$(docker image ls ghcr.io/rionlyu/spoold --format '{{.Repository}}:{{.Tag}}' | grep -- '-amd64$' | head -n 1)" test -n "$image" - docker run --rm "$image" -version | grep -q 'spoold 0.0.0-SNAPSHOT' + docker run --rm "$image" -version | grep -Fq "spoold ${version}" docker volume create spoold-ci-data trap 'docker rm -f spoold-release-ci >/dev/null 2>&1 || true; docker volume rm spoold-ci-data >/dev/null 2>&1 || true' EXIT docker run -d \ diff --git a/README.md b/README.md index 6939dfb..bd2da98 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ disk before acknowledging the request, delivers it in the background, and resumes bounded retries after process termination, reboot, destination failure, or network loss. + + It is intentionally a local delivery spool, not a hosted webhook platform or general message broker. One self-contained daemon and one owner-only journal provide the reliability boundary without PostgreSQL, Redis, Kafka, a cloud diff --git a/demo/render.html b/demo/render.html new file mode 100644 index 0000000..374c33e --- /dev/null +++ b/demo/render.html @@ -0,0 +1,210 @@ + + +
+ +