You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.6 KiB

#!/bin/sh
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This file is part of dobuild.
# Copyright (c) 2019 Contributors as noted in the AUTHORS file.
#
# SPDX-License-Identifier: MPL-2.0
set -e
enabled() {
{ [ "$1" -ne 0 ] || [ "$1" = 'true' ]; } 2>/dev/null
}
physical_pwd() {
pwd -P 2>/dev/null || pwd
}
try_canonicalize() {
readlink -f "$@" 2>/dev/null || realpath "$@"
}
canonicalize() {
if ! try_canonicalize "$1" 2>/dev/null; then
echo "$(cd "$(dirname "$1")" && physical_pwd)/$(basename "$1")"
fi
}
scriptdir() {
dirname "$(canonicalize "${BASH_SOURCE:-$1}")"
}
if [ $# -eq 0 ]; then
set -- 'bats' 'tests/'
fi
DOBUILDDIR="${DOBUILDDIR:-"$(scriptdir "$0")"}"
PATH="${DOBUILDDIR}/bin:$PATH"
ENABLE_BUILD="${ENABLE_BUILD:-0}"
PROJECTDIR="${DOBUILD_COMPOSEPROJECTDIR:-"$PWD"}"
DOBUILD_HOSTCONTAINER="${DOBUILD_HOSTCONTAINER:-"$(get_container_id.sh)"}" || true
COMPOSEENV_PROJECTPATH="$(canonicalize "${COMPOSEENV_PROJECTPATH:-$PROJECTDIR}")"
export DOBUILDDIR
export COMPOSEENV_VOLUMESFROM="${COMPOSEENV_VOLUMESFROM:-$DOBUILD_HOSTCONTAINER}"
export COMPOSEENV_PROJECTPATH
if [ -n "$COMPOSEENV_VOLUMESFROM" ]; then
DIND_VOLUME_METHOD='dind-volumes_from.yml'
else
DIND_VOLUME_METHOD='dind-bind_mount.yml'
fi
set -- -f docker-compose.yml -f "tests/runners/$DIND_VOLUME_METHOD" run --rm check "$@"
if enabled "${ENABLE_BUILD}"; then
docker_compose build 0<&- || exit $?
fi
exec docker_compose "$@"