2020-09-06 11:14:49 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
2022-11-23 19:37:01 +01:00
|
|
|
# not enabling `errtrace` and `pipefail` since those are bash specific
|
|
|
|
set -o errexit # failing commands causes script to fail
|
2023-03-22 08:46:13 +01:00
|
|
|
set -o nounset # undefined variables causes script to fail
|
|
|
|
|
|
|
|
echo "src/gz packages_ci file:///ci" >> /etc/opkg/distfeeds.conf
|
|
|
|
|
|
|
|
FINGERPRINT="$(usign -F -p /ci/packages_ci.pub)"
|
|
|
|
cp /ci/packages_ci.pub "/etc/opkg/keys/$FINGERPRINT"
|
2022-11-23 19:37:01 +01:00
|
|
|
|
2020-09-06 11:14:49 +02:00
|
|
|
mkdir -p /var/lock/
|
|
|
|
|
|
|
|
opkg update
|
|
|
|
|
2023-11-28 06:12:05 +01:00
|
|
|
export CI_HELPER="/ci/.github/workflows/ci_helpers.sh"
|
2020-10-03 19:31:24 +02:00
|
|
|
|
2020-09-06 11:14:49 +02:00
|
|
|
for PKG in /ci/*.ipk; do
|
2023-03-22 08:46:13 +01:00
|
|
|
tar -xzOf "$PKG" ./control.tar.gz | tar xzf - ./control
|
2020-09-18 06:55:00 +02:00
|
|
|
# package name including variant
|
2020-09-06 11:14:49 +02:00
|
|
|
PKG_NAME=$(sed -ne 's#^Package: \(.*\)$#\1#p' ./control)
|
2020-09-18 06:55:00 +02:00
|
|
|
# package version without release
|
2023-07-17 11:02:30 +02:00
|
|
|
PKG_VERSION=$(sed -ne 's#^Version: \(.*\)$#\1#p' ./control)
|
|
|
|
PKG_VERSION="${PKG_VERSION%-[!-]*}"
|
|
|
|
# package source containing test.sh script
|
|
|
|
PKG_SOURCE=$(sed -ne 's#^Source: \(.*\)$#\1#p' ./control)
|
|
|
|
PKG_SOURCE="${PKG_SOURCE#/feed/}"
|
2020-09-06 11:14:49 +02:00
|
|
|
|
2023-07-17 11:02:30 +02:00
|
|
|
echo
|
2020-10-01 20:58:29 +02:00
|
|
|
echo "Testing package $PKG_NAME in version $PKG_VERSION from $PKG_SOURCE"
|
2020-09-06 11:14:49 +02:00
|
|
|
|
2023-07-17 11:02:30 +02:00
|
|
|
if ! [ -d "/ci/$PKG_SOURCE" ]; then
|
|
|
|
echo "$PKG_SOURCE is not a directory"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
PRE_TEST_SCRIPT="/ci/$PKG_SOURCE/pre-test.sh"
|
|
|
|
TEST_SCRIPT="/ci/$PKG_SOURCE/test.sh"
|
|
|
|
|
|
|
|
if ! [ -f "$TEST_SCRIPT" ]; then
|
|
|
|
echo "No test.sh script available"
|
|
|
|
continue
|
|
|
|
fi
|
2020-10-03 19:31:24 +02:00
|
|
|
|
2023-11-28 06:12:05 +01:00
|
|
|
export PKG_NAME PKG_VERSION
|
2023-04-29 08:25:49 +02:00
|
|
|
|
|
|
|
if [ -f "$PRE_TEST_SCRIPT" ]; then
|
|
|
|
echo "Use package specific pre-test.sh"
|
|
|
|
if sh "$PRE_TEST_SCRIPT" "$PKG_NAME" "$PKG_VERSION"; then
|
|
|
|
echo "Pre-test successful"
|
|
|
|
else
|
|
|
|
echo "Pre-test failed"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "No pre-test.sh script available"
|
|
|
|
fi
|
|
|
|
|
|
|
|
opkg install "$PKG"
|
|
|
|
|
2023-07-17 11:02:30 +02:00
|
|
|
echo "Use package specific test.sh"
|
|
|
|
if sh "$TEST_SCRIPT" "$PKG_NAME" "$PKG_VERSION"; then
|
|
|
|
echo "Test successful"
|
2020-09-06 11:14:49 +02:00
|
|
|
else
|
2023-07-17 11:02:30 +02:00
|
|
|
echo "Test failed"
|
|
|
|
exit 1
|
2020-09-06 11:14:49 +02:00
|
|
|
fi
|
|
|
|
|
2023-03-21 07:41:48 +01:00
|
|
|
opkg remove "$PKG_NAME" --force-removal-of-dependent-packages --force-remove --autoremove || true
|
2020-09-06 11:14:49 +02:00
|
|
|
done
|