58 lines
1.3 KiB
Bash
Executable File
58 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
: "${HOMESICK_CMD:=/workspace/dist/gosick}"
|
|
behavior_verbose="${BEHAVIOR_VERBOSE:-0}"
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
-v|--verbose)
|
|
echo "Enabling verbose output for behavior suite"
|
|
behavior_verbose=1
|
|
;;
|
|
*)
|
|
echo "Unknown argument: $1" >&2
|
|
echo "Usage: $0 [--verbose]" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
repo_root="$(cd "$script_dir/.." && pwd)"
|
|
|
|
run_docker_build() {
|
|
echo "Building Docker image for behavior suite..."
|
|
local build_log
|
|
local -a build_cmd
|
|
|
|
if docker buildx version >/dev/null 2>&1; then
|
|
build_cmd=(docker buildx build --load -f "$repo_root/docker/behavior/Dockerfile" -t homesick-behavior:latest "$repo_root")
|
|
else
|
|
build_cmd=(docker build -f "$repo_root/docker/behavior/Dockerfile" -t homesick-behavior:latest "$repo_root")
|
|
fi
|
|
|
|
if [[ "$behavior_verbose" == "1" ]]; then
|
|
"${build_cmd[@]}"
|
|
return
|
|
fi
|
|
|
|
build_log="$(mktemp)"
|
|
if ! "${build_cmd[@]}" >"$build_log" 2>&1; then
|
|
cat "$build_log" >&2
|
|
rm -f "$build_log"
|
|
exit 1
|
|
fi
|
|
|
|
rm -f "$build_log"
|
|
}
|
|
|
|
run_docker_build
|
|
|
|
echo "Running behavior suite in Docker container..."
|
|
docker run --rm \
|
|
-e HOMESICK_CMD="$HOMESICK_CMD" \
|
|
-e BEHAVIOR_VERBOSE="$behavior_verbose" \
|
|
homesick-behavior:latest
|