mirror of
https://github.com/outbackdingo/UltraGrid.git
synced 2026-03-20 11:40:08 +00:00
Since the tests are run in parallel (and also there is much output), it may be difficult to track which one container actually failed so write at least a summary.
48 lines
1.5 KiB
Bash
Executable File
48 lines
1.5 KiB
Bash
Executable File
#!/bin/sh -eu
|
|
|
|
echo "Starting Docker AppImage tests..." >&2
|
|
|
|
mkdir aitest-context # empty build context
|
|
./UltraGrid-"$VERSION"-x86_64.AppImage --appimage-extract
|
|
|
|
run_docker_test() {
|
|
image_name=$(echo "$1" | cut -d: -f 1)
|
|
image_version=$(echo "$1" | cut -d: -f 2)
|
|
dockerfile=$(mktemp)
|
|
cat .github/scripts/Linux/utils/Dockerfile."$image_name" |
|
|
sed "/FROM /s/:\$/$image_version/" > "$dockerfile"
|
|
docker build -f "$dockerfile" -t aitest-"$1" aitest-context
|
|
docker run --rm -v "$PWD"/squashfs-root/:/AppImage aitest-"$1" sh -ce '
|
|
/AppImage/AppRun -v
|
|
/AppImage/AppRun --tool uv-qt -h
|
|
xvfb-run /AppImage/AppRun --tool uv-qt & { sleep 10; kill $!; }
|
|
/AppImage/AppRun --list-modules
|
|
/AppImage/AppRun --capabilities
|
|
'
|
|
}
|
|
|
|
test_list="archlinux:latest ubuntu:22.04 ubuntu:latest"
|
|
|
|
# run the Docker tests in parallel to lower the time
|
|
for n in $test_list; do
|
|
run_docker_test "$n" &
|
|
name=$(printf "%s" "$n" | tr -c '[:alnum:]' '[_*]') # replace :. with _ for valid identifer
|
|
eval "${name}_pid"=$!
|
|
done
|
|
|
|
set +e
|
|
rc=0
|
|
for n in $test_list; do
|
|
name=$(printf "%s" "$n" | tr -c '[:alnum:]' '[_*]')
|
|
if eval wait "\$${name}_pid"; then
|
|
echo "Docker AppImage test $name succeeded" >&2
|
|
else
|
|
rc=$?
|
|
echo "Docker AppImage test $name FAILED with error code $rc" >&2
|
|
fi
|
|
done
|
|
if [ $rc -ne 0 ]; then
|
|
exit $rc
|
|
fi
|
|
echo "All Docker AppImage tests succeeded" >&2
|