0
Fork 0
mirror of https://github.com/project-zot/zot.git synced 2024-12-16 21:56:37 -05:00
zot/test/blackbox/helpers_zot.bash
Andrei Aaron 8553712613
chore: upgrade trivy to v0.55.2 and update the logic of waiting for zot to start in some jobs (#2685)
chore: upgrade trivy to v0.55.2, also update the logic of waiting for zot to start in some jobs

Seems like there's an increate in the time zot requires to start before servicing requests.
From my GitHub observations it is better check using curl instead of relying on hardcoded 5s or 10s values.

The logic in .github/workflows/cluster.yaml seems to be old and out of date.
Even on main right now there is only 1 our of 3 zots actualy running.
The other 2 are actually erroring: Error: operation timeout: boltdb file is already in use, path '/tmp/zot/cache.db'
This is unrelated to this PR, I am seeing the same issue in the olders workflow runs still showing the logs

Signed-off-by: Andrei Aaron <aaaron@luxoft.com>
2024-09-30 10:37:53 -07:00

67 lines
1.8 KiB
Bash

ROOT_DIR=$(git rev-parse --show-toplevel)
OS=$(go env GOOS)
ARCH=$(go env GOARCH)
ZOT_PATH=${ROOT_DIR}/bin/zot-${OS}-${ARCH}
ZLI_PATH=${ROOT_DIR}/bin/zli-${OS}-${ARCH}
ZOT_MINIMAL_PATH=${ROOT_DIR}/bin/zot-${OS}-${ARCH}-minimal
ZB_PATH=${ROOT_DIR}/bin/zb-${OS}-${ARCH}
TEST_DATA_DIR=${BATS_FILE_TMPDIR}/test/data
AUTH_USER=poweruser
AUTH_PASS=sup*rSecr9T
mkdir -p ${TEST_DATA_DIR}
function get_free_port(){
while true
do
random_port=$(( ((RANDOM<<15)|RANDOM) % 49152 + 10000 ))
status="$(nc -z 127.0.0.1 $random_port < /dev/null &>/dev/null; echo $?)"
if [ "${status}" != "0" ]; then
free_port=${random_port};
break;
fi
done
echo ${free_port}
}
function zot_serve() {
local zot_path=${1}
local config_file=${2}
${zot_path} serve ${config_file} &
# zot.pid file keeps a list of zot server PIDs (in case multiple zot servers are started)
echo -n "$! " >> ${BATS_FILE_TMPDIR}/zot.pid
}
# stops all zot instances started by the test
function zot_stop_all() {
kill $(cat ${BATS_FILE_TMPDIR}/zot.pid)
}
function wait_zot_reachable() {
local zot_port=${1}
local zot_url=http://127.0.0.1:${zot_port}/v2/_catalog
curl --connect-timeout 3 \
--max-time 5 \
--retry 60 \
--retry-delay 1 \
--retry-max-time 180 \
--retry-connrefused \
${zot_url}
}
function zli_add_config() {
local registry_name=${1}
local registry_url=${2}
# Clean up old configuration for the same registry
if ${ZLI_PATH} config --list | grep -q ${registry_name}; then
${ZLI_PATH} config remove ${registry_name}
fi
# Add the new registry
${ZLI_PATH} config add ${registry_name} ${registry_url}
}
function zb_run() {
local zot_address=${1}
${ZB_PATH} -c 10 -n 30 -o stdout ${zot_address} --skip-cleanup
}