#!/bin/bash set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BUILD_DIR="${SCRIPT_DIR}/build" REBUILD=false for arg in "$@"; do case "$arg" in --rebuild) REBUILD=true ;; esac done if [ "${REBUILD}" = true ]; then echo "==> Clean build directory" rm -rf "${BUILD_DIR}" mkdir -p "${BUILD_DIR}" echo "==> Configure" cmake -S "${SCRIPT_DIR}" -B "${BUILD_DIR}" fi mkdir -p "${BUILD_DIR}" if [ ! -f "${BUILD_DIR}/CMakeCache.txt" ]; then echo "==> Configure" cmake -S "${SCRIPT_DIR}" -B "${BUILD_DIR}" fi echo "==> Build" cmake --build "${BUILD_DIR}" -j$(nproc) echo "==> Run C++ tests" rm -rf /tmp/pipeline-runner-test/ "${BUILD_DIR}/test-pipeline-runner" \ --gtest_brief=1 \ --gtest_output=xml:"${BUILD_DIR}/test-results.xml" echo "==> Run Python tests" timeout 60 python3 -m pytest "${SCRIPT_DIR}/tests" --tb=line -q \ --junitxml="${BUILD_DIR}/python-test-results.xml" echo "==> Done"