|
|
|
#!/bin/bash
|
|
|
|
#
|
|
|
|
# Build file to set up and run tests based on distribution archive
|
|
|
|
|
|
|
|
set -eux
|
|
|
|
|
|
|
|
# Change to repo root
|
|
|
|
cd $(dirname $0)/../../..
|
|
|
|
|
|
|
|
#
|
|
|
|
# Update git submodules
|
|
|
|
#
|
|
|
|
git submodule update --init --recursive
|
|
|
|
|
|
|
|
#
|
|
|
|
# Build distribution archive
|
|
|
|
#
|
|
|
|
# TODO: this should use Bazel-built dist archives.
|
|
|
|
date ; ./autogen.sh
|
|
|
|
date ; ./configure
|
|
|
|
date ; make dist
|
|
|
|
date
|
|
|
|
|
|
|
|
DIST_ARCHIVE=( $(ls protobuf-*.tar.gz) )
|
|
|
|
if (( ${#DIST_ARCHIVE[@]} != 1 )); then
|
|
|
|
echo >&2 "Distribution archive not found. ${#DIST_ARCHIVE[@]} matches:"
|
|
|
|
echo >&2 "${DIST_ARCHIVE[@]}"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
#
|
|
|
|
# Check for all expected files
|
|
|
|
#
|
|
|
|
kokoro/common/check_missing_dist_files.sh ${DIST_ARCHIVE}
|
|
|
|
|
|
|
|
#
|
|
|
|
# Extract to a temporary directory
|
|
|
|
#
|
|
|
|
if [[ -z ${DIST_WORK_ROOT:-} ]]; then
|
|
|
|
# If you want to preserve the extracted sources, set the DIST_WORK_ROOT
|
|
|
|
# environment variable to an existing directory that should be used.
|
|
|
|
DIST_WORK_ROOT=$(mktemp -d)
|
|
|
|
function cleanup_work_root() {
|
|
|
|
echo "Cleaning up temporary directory ${DIST_WORK_ROOT}..."
|
|
|
|
rm -rf ${DIST_WORK_ROOT}
|
|
|
|
}
|
|
|
|
trap cleanup_work_root EXIT
|
|
|
|
fi
|
|
|
|
|
|
|
|
tar -C ${DIST_WORK_ROOT} --strip-components=1 -axf ${DIST_ARCHIVE}
|
|
|
|
|
|
|
|
#
|
|
|
|
# Run tests using extracted sources
|
|
|
|
#
|
|
|
|
SOURCE_DIR=${DIST_WORK_ROOT} \
|
|
|
|
CMAKE_GENERATOR=Ninja \
|
|
|
|
CTEST_PARALLEL_LEVEL=$(nproc) \
|
|
|
|
kokoro/common/cmake.sh
|
|
|
|
|
|
|
|
echo "PASS"
|