mirror of
https://github.com/corda/corda.git
synced 2025-01-07 13:38:47 +00:00
c6f7129c27
As explained in http://stackoverflow.com/questions/25794905/why-does-set-e-true-false-true-not-exit, "set -e" will only cause the script to exit if the failing command is "unhandled". The fancy || and && shortcuts we were using to run some of the tests caused bash to think we were handling the errors, which isn't what we wanted.
109 lines
2.3 KiB
Bash
Executable File
109 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eo pipefail
|
|
|
|
root_dir=$(pwd)
|
|
|
|
flags="${@}"
|
|
|
|
is-mac() {
|
|
if [[ $(uname -s) == "Darwin" || ${TRAVIS_OS_NAME} == "osx" ]]; then
|
|
return 0
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
install-deps() {
|
|
if is-mac; then
|
|
echo "------ Installing dependencies for Mac ------"
|
|
else
|
|
echo "------ Installing dependencies for Linux ------"
|
|
sudo apt-get update -qq
|
|
sudo apt-get install -y libc6-dev-i386 mingw-w64 gcc-mingw-w64-x86-64 g++-mingw-w64-i686 binutils-mingw-w64-x86-64 lib32z1-dev zlib1g-dev g++-mingw-w64-x86-64
|
|
fi
|
|
}
|
|
|
|
run() {
|
|
echo '==============================================='
|
|
if [ ! $(pwd) = ${root_dir} ]; then
|
|
printf "cd $(pwd); "
|
|
fi
|
|
echo "${@}"
|
|
echo '==============================================='
|
|
"${@}"
|
|
}
|
|
|
|
run_cmake() {
|
|
mkdir -p cmake-build
|
|
rm -rf cmake-build/*
|
|
cd cmake-build
|
|
run cmake ${@} ..
|
|
run make -j4 check
|
|
cd ..
|
|
}
|
|
|
|
publish() {
|
|
local platforms="${1}"
|
|
local arches="${2}"
|
|
|
|
local platform
|
|
for platform in ${platforms}; do
|
|
local arch
|
|
for arch in ${arches}; do
|
|
echo "------ Publishing ${platform}-${arch} ------"
|
|
./gradlew artifactoryPublish -Pplatform=${platform} -Parch=${arch}
|
|
done
|
|
done
|
|
}
|
|
|
|
has_flag() {
|
|
local arg=${1}
|
|
|
|
local f
|
|
for f in ${flags}; do
|
|
local key=$(echo $f | awk -F '=' '{print $1}')
|
|
if [ ${key} = ${arg} ]; then
|
|
return 0
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
### START ###
|
|
|
|
install-deps
|
|
|
|
if [[ "${1}" == "PUBLISH" ]]; then
|
|
if is-mac; then
|
|
publish "macosx" "i386 x86_64"
|
|
elif [[ $(uname -s) == "Linux" ]]; then
|
|
publish "linux windows" "i386 x86_64"
|
|
fi
|
|
else
|
|
if [[ $(uname -o) != "Cygwin" ]]; then
|
|
run_cmake -DCMAKE_BUILD_TYPE=Debug
|
|
fi
|
|
|
|
make_target=test
|
|
|
|
if ! has_flag arch; then
|
|
run make ${flags} jdk-test
|
|
fi
|
|
|
|
run make ${flags} ${make_target}
|
|
run make ${flags} mode=debug ${make_target}
|
|
run make ${flags} process=interpret ${make_target}
|
|
|
|
if has_flag openjdk-src || ! has_flag openjdk; then
|
|
run make ${flags} mode=debug bootimage=true ${make_target}
|
|
run make ${flags} bootimage=true ${make_target}
|
|
fi
|
|
|
|
if ! has_flag openjdk && ! has_flag android && ! has_flag arch; then
|
|
run make ${flags} openjdk=$JAVA_HOME ${make_target}
|
|
fi
|
|
|
|
run make ${flags} tails=true continuations=true heapdump=true ${make_target}
|
|
run make ${flags} codegen-targets=all
|
|
fi
|