43 lines
934 B
Bash
Executable File
43 lines
934 B
Bash
Executable File
#!/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"
|