CI runtime check cleanup (#16713)

* Centralize runtime check code used throughout CI.

* Add checks to confirm that each of the agent dashboards can be fetched.
This commit is contained in:
Austin S. Hemmelgarn 2024-01-17 08:24:22 -05:00 committed by GitHub
parent b70e223e80
commit ffb5791a4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 62 additions and 118 deletions

View File

@ -1,42 +1,9 @@
#!/bin/sh
SCRIPT_DIR="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd -P)"
export DEBIAN_FRONTEND=noninteractive
wait_for() {
host="${1}"
port="${2}"
name="${3}"
timeout="30"
if command -v nc > /dev/null ; then
netcat="nc"
elif command -v netcat > /dev/null ; then
netcat="netcat"
else
printf "Unable to find a usable netcat command.\n"
return 1
fi
printf "Waiting for %s on %s:%s ... " "${name}" "${host}" "${port}"
sleep 30
i=0
while ! ${netcat} -z "${host}" "${port}"; do
sleep 1
if [ "$i" -gt "$timeout" ]; then
printf "Timed out!\n"
docker ps -a
echo "::group::Netdata container logs"
docker logs netdata 2>&1
echo "::endgroup::"
return 1
fi
i="$((i + 1))"
done
printf "OK\n"
}
if [ -z "$(command -v nc 2>/dev/null)" ] && [ -z "$(command -v netcat 2>/dev/null)" ]; then
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install -y netcat
fi
@ -55,10 +22,9 @@ docker run -d --name=netdata \
--security-opt apparmor=unconfined \
netdata/netdata:test
wait_for localhost 19999 netdata || exit 1
curl -sS http://127.0.0.1:19999/api/v1/info > ./response || exit 1
cat ./response
jq '.version' ./response || exit 1
if ! "${SCRIPT_DIR}/../../packaging/runtime-check.sh"; then
docker ps -a
echo "::group::Netdata container logs"
docker logs netdata 2>&1
echo "::endgroup::"
fi

View File

@ -1,5 +1,7 @@
#!/bin/sh
SCRIPT_DIR="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd -P)"
install_debian_like() {
# This is needed to ensure package installs don't prompt for any user input.
export DEBIAN_FRONTEND=noninteractive
@ -94,37 +96,6 @@ dump_log() {
cat ./netdata.log
}
wait_for() {
host="${1}"
port="${2}"
name="${3}"
timeout="30"
if command -v nc > /dev/null ; then
netcat="nc"
elif command -v netcat > /dev/null ; then
netcat="netcat"
else
printf "Unable to find a usable netcat command.\n"
return 1
fi
printf "Waiting for %s on %s:%s ... " "${name}" "${host}" "${port}"
sleep 30
i=0
while ! ${netcat} -z "${host}" "${port}"; do
sleep 1
if [ "$i" -gt "$timeout" ]; then
printf "Timed out!\n"
return 1
fi
i="$((i + 1))"
done
printf "OK\n"
}
case "${DISTRO}" in
debian | ubuntu)
install_debian_like
@ -151,12 +122,6 @@ trap dump_log EXIT
/usr/sbin/netdata -D > ./netdata.log 2>&1 &
wait_for localhost 19999 netdata || exit 1
curl -sS http://127.0.0.1:19999/api/v1/info > ./response || exit 1
cat ./response
jq '.version' ./response || exit 1
"${SCRIPT_DIR}/../../packaging/runtime-check.sh" || exit 1
trap - EXIT

View File

@ -8,47 +8,10 @@ dump_log() {
cat ./netdata.log
}
wait_for() {
host="${1}"
port="${2}"
name="${3}"
timeout="30"
if command -v nc > /dev/null ; then
netcat="nc"
elif command -v netcat > /dev/null ; then
netcat="netcat"
else
printf "Unable to find a usable netcat command.\n"
return 1
fi
printf "Waiting for %s on %s:%s ... " "${name}" "${host}" "${port}"
sleep 30
i=0
while ! ${netcat} -z "${host}" "${port}"; do
sleep 1
if [ "$i" -gt "$timeout" ]; then
printf "Timed out!\n"
return 1
fi
i="$((i + 1))"
done
printf "OK\n"
}
trap dump_log EXIT
"${NETDATA_INSTALL_PATH}/bin/netdata" -D > ./netdata.log 2>&1 &
wait_for localhost 19999 netdata || exit 1
curl -sS http://127.0.0.1:19999/api/v1/info > ./response || exit 1
cat ./response
jq '.version' ./response || exit 1
"${NETDATA_SOURCE_PATH}/packaging/runtime-check.sh" || exit 1
trap - EXIT

50
packaging/runtime-check.sh Executable file
View File

@ -0,0 +1,50 @@
#!/bin/sh
wait_for() {
host="${1}"
port="${2}"
name="${3}"
timeout="30"
if command -v nc > /dev/null ; then
netcat="nc"
elif command -v netcat > /dev/null ; then
netcat="netcat"
else
printf "Unable to find a usable netcat command.\n"
return 1
fi
printf "Waiting for %s on %s:%s ... " "${name}" "${host}" "${port}"
sleep 30
i=0
while ! ${netcat} -z "${host}" "${port}"; do
sleep 1
if [ "$i" -gt "$timeout" ]; then
printf "Timed out!\n"
return 2
fi
i="$((i + 1))"
done
printf "OK\n"
}
wait_for localhost 19999 netdata
case $? in
1) exit 2 ;;
2) exit 3 ;;
esac
curl -sfS http://127.0.0.1:19999/api/v1/info > ./response || exit 1
cat ./response
jq '.version' ./response || exit 1
curl -sfS http://127.0.0.1:19999/index.html || exit 1
curl -sfS http://127.0.0.1:19999/v0/index.html || exit 1
curl -sfS http://127.0.0.1:19999/v1/index.html || exit 1
curl -sfS http://127.0.0.1:19999/v2/index.html || exit 1