From 2175f6501ca4e8dc4736088556401a9374749be3 Mon Sep 17 00:00:00 2001 From: fithwum Date: Sun, 6 Jul 2025 05:08:08 -0700 Subject: [PATCH] size test --- .gitea/workflows/base-build.yml | 37 +++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/base-build.yml b/.gitea/workflows/base-build.yml index 0dc9913..bb17aa9 100644 --- a/.gitea/workflows/base-build.yml +++ b/.gitea/workflows/base-build.yml @@ -180,6 +180,19 @@ jobs: - name: Generate build-info.json per version run: | + human_size() { + local b=$1 + local d='' + local s=0 + local S=(B KB MB GB TB) + while ((b >= 1024 && s < ${#S[@]}-1)); do + d=$((b % 1024)) + b=$((b / 1024)) + s=$((s + 1)) + done + printf "%s%s\n" "$b" "${S[$s]}" + } + cd upload-repo for version in buster bullseye bookworm docker-build; do echo "[INFO] Generating build-info.json for $version" @@ -188,21 +201,13 @@ jobs: image="gitea.fithwum.tech/fithwum/debian-base:$version" - human_size() { - b=$1 - d='' - s=0 - S=(B KB MB GB TB) - while ((b >= 1024 && s < ${#S[@]}-1)); do - d=$((b % 1024)) - b=$((b / 1024)) - s=$((s + 1)) - done - printf "%s%s\n" "$b" "${S[$s]}" - } + digest=$(docker inspect --format='{{if .RepoDigests}}{{index .RepoDigests 0}}{{else}}unknown{{end}}' "$image" 2>/dev/null || echo "unknown") + size_bytes=$(docker image inspect "$image" --format='{{.Size}}' 2>/dev/null || echo "0") + + # Remove any non-digit characters and fallback if empty + size_bytes=${size_bytes//[^0-9]/} + if [[ -z "$size_bytes" ]]; then size_bytes=0; fi - digest=$(docker inspect --format='{{index .RepoDigests 0}}' "$image" || echo "unknown") - size_bytes=$(docker image inspect "$image" --format='{{.Size}}' || echo "0") size_human=$(human_size "$size_bytes") jq -n --arg version "$version" \ @@ -210,14 +215,14 @@ jobs: --arg build_time "$(date -u +'%Y-%m-%dT%H:%M:%SZ')" \ --arg image_tag "$image" \ --arg digest "$digest" \ - --argjson size "$size" \ + --arg image_size "$size_human" \ '{ version: $version, commit: $commit, build_time: $build_time, image_tag: $image_tag, digest: $digest, - image_size: $size + image_size: $image_size }' > "$infofile" done