24 lines
689 B
Bash
24 lines
689 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
IMAGE_NAME="ffi-builder:latest"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_PATH="$(cd "$SCRIPT_DIR/../../" && pwd)"
|
|
DOCKERFILE_PATH="$SCRIPT_DIR/../ffi.Dockerfile"
|
|
|
|
RUN_UNIT_TESTS=false
|
|
if [[ "${1-}" == "--tests" ]]; then
|
|
RUN_UNIT_TESTS=true
|
|
fi
|
|
|
|
echo "Building base image..."
|
|
docker build --target ffi-base -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" "$PROJECT_PATH"
|
|
|
|
if [ "$RUN_UNIT_TESTS" = true ]; then
|
|
echo "Building unit-testing stage..."
|
|
docker build --target ffi-unit-testing -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" "$PROJECT_PATH"
|
|
|
|
echo "Running tests..."
|
|
docker run --rm -it "$IMAGE_NAME" cargo test
|
|
fi
|