chore: bump zui version (#3809)

* chore: bump zui version

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>

* test(blackbox): docker build to use docker mediatypes in blackbox tests

Add more debugging when starting zot servers
See thread https://github.com/actions/runner-images/issues/13474#issuecomment-3928452506
for changes in behavior caused by docker 28 to docker 29 upgrade.

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>

---------

Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
This commit is contained in:
Andrei Aaron
2026-02-23 04:30:46 +02:00
committed by GitHub
parent 5e57656bff
commit 0d327c9812
6 changed files with 66 additions and 8 deletions
+4
View File
@@ -2,6 +2,10 @@
set -e
# Docker build env: single platform, no attestations (avoids OCI index / attestation manifest list)
export BUILDX_NO_DEFAULT_ATTESTATIONS=1
export DOCKER_DEFAULT_PLATFORM=linux/amd64
BATS_FLAGS=${BATS_FLAGS:-"--print-output-on-failure"}
SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
BATS=${SCRIPTPATH}/../../hack/tools/bin/bats
+4 -1
View File
@@ -76,7 +76,10 @@ EOF
docker build -f Dockerfile . -t localhost:${zot_port}/test:latest
run docker push localhost:${zot_port}/test:latest
[ "$status" -eq 0 ]
[ $(cat ${zot_root_dir}/test/index.json | jq .manifests[0].mediaType) = '"application/vnd.docker.distribution.manifest.v2+json"' ]
# Docker 29+ may push OCI manifest/index when using default build; accept either format
media_type=$(cat ${zot_root_dir}/test/index.json | jq -r .manifests[0].mediaType)
echo "$media_type" >&3
[ "$media_type" = "application/vnd.docker.distribution.manifest.v2+json" ]
run docker pull localhost:${zot_port}/test:latest
[ "$status" -eq 0 ]
# inspect and trigger a CVE scan
+2 -1
View File
@@ -385,7 +385,8 @@ EOF
FROM ghcr.io/project-zot/test-images/busybox-docker:1.37
RUN echo "hello world" > /testfile
EOF
docker build -f Dockerfile . -t localhost:${zot_port}/test
run sh -c 'unset GODEBUG; docker build -f Dockerfile -t localhost:'${zot_port}'/test .'
[ "$status" -eq 0 ]
run docker push localhost:${zot_port}/test
[ "$status" -eq 1 ]
run docker pull localhost:${zot_port}/test
+50 -2
View File
@@ -98,16 +98,64 @@ function zot_stop_all() {
fi
}
# Verifies zot is listening and responding with a valid /v2/_catalog.
# Exits with 1 and a clear message if zot did not start or response is not from zot.
function wait_zot_reachable() {
local zot_port=${1}
local zot_url=http://127.0.0.1:${zot_port}/v2/_catalog
curl --connect-timeout 3 \
# If we have zot PIDs, ensure at least one process is still running (zot didn't exit on startup, e.g. bind failure).
# When multiple zots run in the same test (e.g. sync.bats), zot.pid holds all PIDs; we only require one alive here.
# The curl below to the given port is what confirms the specific instance for that port is up.
if [ -f "${BATS_FILE_TMPDIR}/zot.pid" ]; then
local pids
read -r pids < "${BATS_FILE_TMPDIR}/zot.pid" || true
local one_alive=0
for p in $pids; do
kill -0 "$p" 2>/dev/null && one_alive=1 && break
done
if [ "$one_alive" -eq 0 ]; then
echo "ERROR: zot process(es) exited before becoming reachable (check bind or config). Port ${zot_port}" >&2
exit 1
fi
fi
local response
response=$(curl -s --connect-timeout 3 \
--max-time 5 \
--retry 60 \
--retry-delay 1 \
--retry-max-time 180 \
--retry-connrefused \
${zot_url}
-w "\n%{http_code}" \
"${zot_url}")
local curl_ret=$?
if [ $curl_ret -ne 0 ]; then
echo "ERROR: zot did not become reachable at ${zot_url}" >&2
exit 1
fi
# curl -s -w "\n%{http_code}" appends HTTP code on last line; body is everything else
local http_code
http_code=$(echo "$response" | tail -n1)
response=$(echo "$response" | sed '$d')
if [ "$http_code" = "401" ]; then
# Zot is up but requires auth (e.g. redis_session_store, openid_claim_mapping); treat as reachable
echo "$response"
return 0
fi
if [ "$http_code" != "200" ]; then
echo "ERROR: zot at ${zot_url} returned HTTP ${http_code}" >&2
exit 1
fi
if ! echo "$response" | jq -e '.repositories != null' >/dev/null 2>&1; then
echo "ERROR: response from ${zot_url} is not a valid zot _catalog response (missing .repositories)" >&2
exit 1
fi
echo "$response"
}
function zli_add_config() {