From 78a84b211fbafb6c2006105f580f6a6d3520e8af Mon Sep 17 00:00:00 2001 From: fithwum Date: Thu, 10 Jul 2025 14:22:52 -0700 Subject: [PATCH] test --- .gitea/workflows/base-build.yml | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/base-build.yml b/.gitea/workflows/base-build.yml index aa8a06d..ec59a3d 100644 --- a/.gitea/workflows/base-build.yml +++ b/.gitea/workflows/base-build.yml @@ -104,9 +104,12 @@ jobs: - name: Build and Push Alpine Image run: | + mkdir -p "${{ env.CACHE_DIR }}" IMAGE="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_ORG }}/${{ env.IMAGE_REPO_TS }}:alpine" + METAFILE="${{ env.CACHE_DIR }}/metadata-alpine.json" + echo "[INFO] Building $IMAGE" - docker buildx build --platform linux/amd64 --push -t "$IMAGE" ./alpine + docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE" ./alpine build-debian: needs: check-for-changes @@ -124,15 +127,20 @@ jobs: - name: Build and Push Debian Image run: | + mkdir -p "${{ env.CACHE_DIR }}" IMAGE="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_ORG }}/${{ env.IMAGE_REPO_TS }}:debian" + METAFILE="${{ env.CACHE_DIR }}/metadata-debian.json" + echo "[INFO] Building $IMAGE" - docker buildx build --platform linux/amd64 --push -t "$IMAGE" ./debian + docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE" ./debian - name: Build and Push Basic Image (depends on debian) run: | IMAGE="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_ORG }}/${{ env.IMAGE_REPO_TS }}:basic" + METAFILE2="${{ env.CACHE_DIR }}/metadata-basic.json" + echo "[INFO] Building $IMAGE" - docker buildx build --platform linux/amd64 --push -t "$IMAGE" ./basic + docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE2" ./basic generate-changelogs: needs: check-for-changes @@ -217,6 +225,7 @@ jobs: IMAGE_REPO_TS: ${{ env.IMAGE_REPO_TS }} ALPINE_DIGEST: ${{ needs.check-for-changes.outputs.alpine_digest }} DEBIAN_DIGEST: ${{ needs.check-for-changes.outputs.debian_digest }} + CACHE_DIR: ${{ env.CACHE_DIR }} run: | human_size() { local b=$1 @@ -232,6 +241,7 @@ jobs: } cd upload-repo + declare -A digests digests[alpine]="${ALPINE_DIGEST}" digests[debian]="${DEBIAN_DIGEST}" @@ -246,11 +256,16 @@ jobs: infofile="$version/build-info.json" image="${IMAGE_REGISTRY}/${IMAGE_ORG}/${IMAGE_REPO_TS}:$version" - digest=$(docker inspect --format='{{if .RepoDigests}}{{index .RepoDigests 0}}{{else}}unknown{{end}}' "$image" 2>/dev/null || echo "unknown") + # get digest from metadata file instead of docker inspect + metafile="../${CACHE_DIR}/metadata-$version.json" + digest="unknown" + if [ -f "$metafile" ]; then + digest=$(jq -r '."containerimage.digest"' "$metafile" || echo "unknown") + fi + size_bytes=$(docker image inspect "$image" --format='{{.Size}}' 2>/dev/null || echo "0") size_bytes=${size_bytes//[^0-9]/} size_human=$(human_size "$size_bytes") - base_digest="${digests[$version]:-unknown}" jq -n \