fa7523d3aa
ci: Extend docs (MarcoFalke)fa493ef088
ci: Make ci system read-only on the git work tree (MarcoFalke)fab1333292
ci: Remove git from required packages on host (MarcoFalke)fa00393bce
ci: Make all filesystem operations inside docker (MarcoFalke) Pull request description: Running the ci completely in a docker, without leaving any traces on the host system is not possible right now because the ccache and depends dir needs to be propagated back and picked up by the host for caching. Fixes #17372 ACKs for top commit: JeremyRubin: tested ACKfa7523d3aa
Tree-SHA512: 4bce1a0f883bcbdb34abf409bdbc80d420c5da2045d2f9c5536ac433f9e5b490f23df084546c8c049f688b487572bbfc4f9c4029e9e672f4d9279739d066ed2e
50 lines
1.8 KiB
Bash
Executable file
50 lines
1.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2018 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
export LC_ALL=C.UTF-8
|
|
|
|
# Temporarily disable errexit, because Travis macOS fails without error message
|
|
set +o errexit
|
|
cd "build/bitcoin-$HOST" || (echo "could not enter distdir build/bitcoin-$HOST"; exit 1)
|
|
set -o errexit
|
|
|
|
if [ -n "$QEMU_USER_CMD" ]; then
|
|
BEGIN_FOLD wrap-qemu
|
|
echo "Prepare to run functional tests for HOST=$HOST"
|
|
# Generate all binaries, so that they can be wrapped
|
|
DOCKER_EXEC make $MAKEJOBS -C src/secp256k1 VERBOSE=1
|
|
DOCKER_EXEC make $MAKEJOBS -C src/univalue VERBOSE=1
|
|
for b_name in {"${BASE_OUTDIR}/bin"/*,src/secp256k1/*tests,src/univalue/{no_nul,test_json,unitester,object}}; do
|
|
# shellcheck disable=SC2044
|
|
for b in $(find "${BASE_ROOT_DIR}" -executable -type f -name $(basename $b_name)); do
|
|
echo "Wrap $b ..."
|
|
DOCKER_EXEC mv "$b" "${b}_orig"
|
|
DOCKER_EXEC echo "\#\!/usr/bin/env bash" \> "$b"
|
|
DOCKER_EXEC echo "$QEMU_USER_CMD \\\"${b}_orig\\\" \\\"\\\$@\\\"" \>\> "$b"
|
|
DOCKER_EXEC chmod +x "$b"
|
|
done
|
|
done
|
|
END_FOLD
|
|
fi
|
|
|
|
if [ "$RUN_UNIT_TESTS" = "true" ]; then
|
|
BEGIN_FOLD unit-tests
|
|
bash -c "${CI_WAIT}" & # Print dots in case the unit tests take a long time to run
|
|
DOCKER_EXEC LD_LIBRARY_PATH=$BASE_BUILD_DIR/depends/$HOST/lib make $MAKEJOBS check VERBOSE=1
|
|
END_FOLD
|
|
fi
|
|
|
|
if [ "$RUN_FUNCTIONAL_TESTS" = "true" ]; then
|
|
BEGIN_FOLD functional-tests
|
|
DOCKER_EXEC test/functional/test_runner.py --ci $MAKEJOBS --tmpdirprefix "${BASE_SCRATCH_DIR}/test_runner/" --ansi --combinedlogslen=4000 ${TEST_RUNNER_EXTRA} --quiet --failfast
|
|
END_FOLD
|
|
fi
|
|
|
|
if [ "$RUN_FUZZ_TESTS" = "true" ]; then
|
|
BEGIN_FOLD fuzz-tests
|
|
DOCKER_EXEC test/fuzz/test_runner.py -l DEBUG ${DIR_FUZZ_IN}
|
|
END_FOLD
|
|
fi
|