60 lines
1.5 KiB
Bash
Executable File
60 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Bring in the variables from SOLUTION file, supporting
|
|
# nested substitution
|
|
. SOLUTION
|
|
|
|
VARS=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION))
|
|
for var in ${VARS[@]}; do
|
|
export ${var}
|
|
done
|
|
|
|
RELEASE_INFO=${RELEASE_INFO:-N/A}
|
|
[[ "${RELEASE_INFO}" == "N/A" ]] && {
|
|
TAG=${TAG:-test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d)}
|
|
} || {
|
|
TAG=${TAG:-test-${OS_DISTRO}-${PACKAGE_STREAM}-${RELEASE_INFO}}
|
|
}
|
|
|
|
function fail {
|
|
>&2 echo "$*"
|
|
exit -1
|
|
}
|
|
|
|
VIDEO=$(getent group video | sed -E 's,^video:[^:]*:([^:]*):.*$,\1,')
|
|
RENDER=$(getent group render | sed -E 's,^render:[^:]*:([^:]*):.*$,\1,')
|
|
|
|
docker pull ${REGISTRY_URL}/${CONTAINER}:${TAG} || fail "Unable to pull ${REGISTRY_URL}/${CONTAINER}:${TAG}"
|
|
|
|
|
|
[[ "${VIDEO}" != "" ]] || fail "No video group found."
|
|
|
|
ADD_GROUPS="--group-add ${VIDEO}"
|
|
[[ "${RENDER}" != "" ]] && ADD_GROUPS+=" --group-add ${RENDER}"
|
|
|
|
[[ -e data/ ]] && rm -rf data
|
|
|
|
mkdir data || fail "Unable to make data volume directory"
|
|
chmod a+rwX data || fail "Unable to chmod data volume to a+rwX"
|
|
|
|
CMD="docker run \
|
|
${ADD_GROUPS} \
|
|
--rm \
|
|
--device=/dev/dri \
|
|
-v data:/data \
|
|
${REGISTRY_URL}/${CONTAINER}:${TAG} \
|
|
test"
|
|
|
|
cat << EOF
|
|
-------------------------------------------------------------------------------
|
|
Running test with:
|
|
|
|
video group GID: ${VIDEO}
|
|
$( [[ "${RENDER}" != "" ]] && echo -e "render group GID: ${RENDER}\n" )
|
|
${CMD}
|
|
-------------------------------------------------------------------------------
|
|
|
|
EOF
|
|
|
|
${CMD} || fail "Unable to execute 'test' on ${REGISTRY_URL}/${CONTAINER}:${TAG}."
|