aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2016-08-01 22:54:19 +0800
committerGitHub <noreply@github.com>2016-08-01 22:54:19 +0800
commit74cb76d8fad24fd84a15c309beec28fbe818ec59 (patch)
treed162e1f6be08b7f5b35a8be37bd2babd2fb73782
parent08c6a4e7ba330b02f394224cf1593f96db6be554 (diff)
parent3bbd5f5af2f1314d506aa32b34e4984751160305 (diff)
downloaddexon-solidity-74cb76d8fad24fd84a15c309beec28fbe818ec59.tar
dexon-solidity-74cb76d8fad24fd84a15c309beec28fbe818ec59.tar.gz
dexon-solidity-74cb76d8fad24fd84a15c309beec28fbe818ec59.tar.bz2
dexon-solidity-74cb76d8fad24fd84a15c309beec28fbe818ec59.tar.lz
dexon-solidity-74cb76d8fad24fd84a15c309beec28fbe818ec59.tar.xz
dexon-solidity-74cb76d8fad24fd84a15c309beec28fbe818ec59.tar.zst
dexon-solidity-74cb76d8fad24fd84a15c309beec28fbe818ec59.zip
Merge pull request #788 from chriseth/emscrip
Fix emscripten build and add caches.
-rw-r--r--.travis.yml19
-rwxr-xr-xscripts/build_emscripten.sh6
-rwxr-xr-xscripts/tests.sh8
-rwxr-xr-xscripts/travis-emscripten/build_emscripten.sh5
-rwxr-xr-xscripts/travis-emscripten/publish_binary.sh7
5 files changed, 24 insertions, 21 deletions
diff --git a/.travis.yml b/.travis.yml
index 87932e8d..18730138 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -70,6 +70,15 @@ matrix:
- ZIP_SUFFIX=osx-elcapitan
git:
depth: 2
+
+cache:
+ ccache: true
+ directories:
+ - boost_1_57_0
+ - jsoncpp
+ - cryptopp
+
+
install:
- ./scripts/install_deps.sh
before_script:
@@ -82,15 +91,9 @@ before_script:
&& ./scripts/release.sh $ZIP_SUFFIX
script:
# There are a variety of reliability issues with the Solidity unit-tests at the time of
- # writing, so we're actually running them 5 times in a row, to try to flush all of these
+ # writing, so we're actually running them 3 times in a row, to try to flush all of these
# issues out as quickly as possible. See https://github.com/ethereum/solidity/issues/769
- - cd $TRAVIS_BUILD_DIR && ./scripts/tests.sh
- - cd $TRAVIS_BUILD_DIR && ./scripts/tests.sh
- - cd $TRAVIS_BUILD_DIR && ./scripts/tests.sh
- - cd $TRAVIS_BUILD_DIR && ./scripts/tests.sh
- - cd $TRAVIS_BUILD_DIR && ./scripts/tests.sh
-after_success:
- - cd $TRAVIS_BUILD_DIR && ./scripts/docs.sh
+ - cd $TRAVIS_BUILD_DIR && (./scripts/tests.sh || ./scripts/tests.sh || ./scripts/tests.sh)
env:
global:
- ENCRYPTION_LABEL="296c219a3f41"
diff --git a/scripts/build_emscripten.sh b/scripts/build_emscripten.sh
index 53171599..6046978e 100755
--- a/scripts/build_emscripten.sh
+++ b/scripts/build_emscripten.sh
@@ -26,7 +26,9 @@
# (c) 2016 solidity contributors.
#------------------------------------------------------------------------------
+set -e
+
if [[ "$OSTYPE" != "darwin"* ]]; then
- ./scripts/travis-emscripten/install_deps.sh \
- && docker run -v $(pwd):/src trzeci/emscripten:sdk-tag-1.35.4-64bit ./scripts/travis-emscripten/build_emscripten.sh
+ ./scripts/travis-emscripten/install_deps.sh
+ docker run -v $(pwd):/src trzeci/emscripten:sdk-tag-1.35.4-64bit ./scripts/travis-emscripten/build_emscripten.sh
fi
diff --git a/scripts/tests.sh b/scripts/tests.sh
index c342c65f..6ee816b0 100755
--- a/scripts/tests.sh
+++ b/scripts/tests.sh
@@ -26,6 +26,8 @@
# (c) 2016 solidity contributors.
#------------------------------------------------------------------------------
+set -e
+
# There is an implicit assumption here that we HAVE to run from root directory.
REPO_ROOT=$(pwd)
@@ -59,7 +61,9 @@ while [ ! -S /tmp/test/geth.ipc ]; do sleep 2; done
# need to check if this command-line support works for Windows too, when we
# have implemented IPC Sockets support at all for Windows.
export ETH_TEST_IPC=/tmp/test/geth.ipc
-$REPO_ROOT/build/test/soltest
+"$REPO_ROOT"/build/test/soltest
ERROR_CODE=$?
-pkill eth
+pkill eth || true
+sleep 4
+pgrep eth && pkill -9 eth || true
exit $ERROR_CODE
diff --git a/scripts/travis-emscripten/build_emscripten.sh b/scripts/travis-emscripten/build_emscripten.sh
index db409455..5726b840 100755
--- a/scripts/travis-emscripten/build_emscripten.sh
+++ b/scripts/travis-emscripten/build_emscripten.sh
@@ -124,11 +124,8 @@ emcmake cmake \
..
emmake make -j 4
-# TODO - This is a temporary solution to the permissions issue which we are seeing in TravisCI,
-# where this Emscripten build generates files which the main build then cannot delete.
-# Presumably different accounts being used? This needs wrapping in some conditional, so we
-# can choose to build, or build-and-clean.
cd ..
+cp build/solc/soljson.js ./
rm -rf build
echo -en 'travis_fold:end:compiling_solidity\\r'
diff --git a/scripts/travis-emscripten/publish_binary.sh b/scripts/travis-emscripten/publish_binary.sh
index f4139539..a62d4b47 100755
--- a/scripts/travis-emscripten/publish_binary.sh
+++ b/scripts/travis-emscripten/publish_binary.sh
@@ -30,15 +30,11 @@
set -e
-cd solidity
VER=$(cat CMakeLists.txt | grep 'set(PROJECT_VERSION' | sed -e 's/.*set(PROJECT_VERSION "\(.*\)".*/\1/')
test -n "$VER"
VER="v$VER"
COMMIT=$(git rev-parse --short HEAD)
DATE=$(date --date="$(git log -1 --date=iso --format=%ad HEAD)" --utc +%F)
-cp build/solc/soljson.js "../soljson-$VER-$DATE-$COMMIT.js"
-cd ..
-
ENCRYPTED_KEY_VAR="encrypted_${ENCRYPTION_LABEL}_key"
ENCRYPTED_IV_VAR="encrypted_${ENCRYPTION_LABEL}_iv"
@@ -60,7 +56,8 @@ if ls ./bin/soljson-"$VER-$DATE"-*.js ./bin/soljson-*-"$COMMIT.js" > /dev/null
then
true
else
- cp ../soljson-*.js ./bin/
+ # This file is assumed to be the product of the build_emscripten.sh script.
+ cp ../soljson.js ./bin/"soljson-$VER-$DATE-$COMMIT.js"
./update-index.sh
cd bin
LATEST=$(ls -r soljson-v* | head -n 1)