diff --git a/.gitea/workflows/base-build.yml b/.gitea/workflows/base-build.yml index 70c78b6..8781102 100644 --- a/.gitea/workflows/base-build.yml +++ b/.gitea/workflows/base-build.yml @@ -277,21 +277,15 @@ jobs: image="${IMAGE_REGISTRY}/${IMAGE_ORG}/${IMAGE_REPO_TS}:$version" echo "${{ secrets.GIT_TOKEN }}" | docker login gitea.fithwum.tech -u "${{ secrets.GIT_USERNAME }}" --password-stdin - - # Pull image before inspecting to ensure metadata is available - if ! docker pull "$image"; then - echo "[WARN] Failed to pull $image — setting fields to 'unknown/0'" - digest="unknown" - size_bytes=0 - else - 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") - size_bytes=${size_bytes//[^0-9]/} - if [[ -z "$size_bytes" ]]; then size_bytes=0; fi + + echo "[INFO] Pulling $image" + docker pull "$image" || echo "[WARN] Failed to pull $image" + + digest=$(docker inspect --format='{{index .RepoDigests 0}}' "$image" 2>/dev/null || echo "") + if [ -z "$digest" ]; then + digest=$(docker inspect --format='{{.Id}}' "$image" 2>/dev/null || echo "unknown") fi - inspect=$(docker buildx imagetools inspect "$image" 2>/dev/null || echo "") - digest=$(echo "$inspect" | grep -m1 'Digest:' | awk '{print $2}' || echo "unknown") size_bytes=$(echo "$inspect" | grep 'Size:' | head -n1 | awk '{print $2}' || echo "0") size_bytes=${size_bytes//[^0-9]/} size_human=$(human_size "$size_bytes")