diff --git a/.editorconfig b/.editorconfig
index 0ac22f073..28b112186 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -9,3 +9,8 @@ trim_trailing_whitespace=true
max_line_length=120
insert_final_newline=true
+[.travis.yml]
+indent_style=space
+indent_size=2
+tab_width=8
+end_of_line=lf
diff --git a/.travis.yml b/.travis.yml
index b9a530390..ee8cc2677 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,105 +8,67 @@ branches:
- /^stable-.*$/
- /^beta$/
- /^stable$/
+
git:
depth: 3
+
matrix:
- fast_finish: true
- allow_failures:
- - rust: nightly
include:
- rust: stable
env: FEATURES="--features travis-beta" RUN_TESTS="true"
- # - rust: beta
- # env: FEATURES="--features travis-beta" RUN_TESTS="true"
- - rust: stable
- env: FEATURES="--features travis-beta" RUN_BUILD="true"
- rust: beta
- env: FEATURES="--features travis-beta" RUN_BUILD="true"
- - rust: stable
env: FEATURES="--features travis-beta" RUN_COVERAGE="true"
- # - rust: nightly
- # env: FEATURES="--features travis-nightly" RUN_BENCHES="true"
- - rust: nightly
- env: FEATURES="--features travis-nightly" RUN_TESTS="true"
+
env:
global:
- TRAVIS_NODE_VERSION="6"
- # GH_TOKEN
- - secure: bumJASbZSU8bxJ0EyPUJmu16AiV9EXOpyOj86Jlq/Ty9CfwGqsSXt96uDyE+OUJf34RUFQMsw0nk37/zC4lcn6kqk2wpuH3N/o85Zo/cVZY/NusBWLQqtT5VbYWsV+u2Ua4Tmmsw8yVYQhYwU2ZOejNpflL+Cs9XGgORp1L+/gMRMC2y5Se6ZhwnKPQlRJ8LGsG1dzjQULxzADIt3/zuspNBS8a2urJwlHfGMkvHDoUWCviP/GXoSqw3TZR7FmKyxE19I8n9+iSvm9+oZZquvcgfUxMHn8Gq/b44UbPvjtFOg2yam4xdWXF/RyWCHdc/R9EHorSABeCbefIsm+zcUF3/YQxwpSxM4IZEeH2rTiC7dcrsKw3XsO16xFQz5YI5Bay+CT/wTdMmJd7DdYz7Dyf+pOvcM9WOf/zorxYWSBOMYy0uzbusU2iyIghQ82s7E/Ahg+WARtPgkuTLSB5aL1oCTBKHqQscMr7lo5Ti6RpWLxEdTQMBznc+bMr+6dEtkEcG9zqc6cE9XX+ox3wTU6+HVMfQ1ltCntJ4UKcw3A6INEbw9wgocQa812CIASQ2fE+SCAbz6JxBjIAlFUnD1lUB7S8PdMPwn9plfQgKQ2A5YZqg6FnBdf0rQXIJYxQWKHXj/rBHSUCT0tHACDlzTA+EwWggvkP5AGIxRxm8jhw=
- - TARGETS="-p ethkey -p ethstore -p ethash -p ethcore-util -p ethcore -p ethsync -p ethcore-rpc -p parity -p ethjson -p ethcore-dapps -p ethcore-signer -p bigint"
- - ARCHIVE_SUFFIX="-${TRAVIS_OS_NAME}-${TRAVIS_TAG}"
- - KCOV_FEATURES=""
- - KCOV_CMD="./kcov-master/tmp/usr/local/bin/kcov --exclude-pattern /usr/,/.cargo,/root/.multirust,src/tests,util/json-tests,util/src/network/tests,sync/src/tests,ethcore/src/tests,ethcore/src/evm/tests,ethstore/tests target/kcov"
+ - CXX="g++-4.8"
+ - CC="gcc-4.8"
+ - RUST_BACKTRACE="1"
- RUN_TESTS="false"
- RUN_COVERAGE="false"
- - RUN_BUILD="false"
- - RUN_BENCHES="false"
- - RUST_BACKTRACE="1"
+ # GH_TOKEN for documentation
+ - secure: bumJASbZSU8bxJ0EyPUJmu16AiV9EXOpyOj86Jlq/Ty9CfwGqsSXt96uDyE+OUJf34RUFQMsw0nk37/zC4lcn6kqk2wpuH3N/o85Zo/cVZY/NusBWLQqtT5VbYWsV+u2Ua4Tmmsw8yVYQhYwU2ZOejNpflL+Cs9XGgORp1L+/gMRMC2y5Se6ZhwnKPQlRJ8LGsG1dzjQULxzADIt3/zuspNBS8a2urJwlHfGMkvHDoUWCviP/GXoSqw3TZR7FmKyxE19I8n9+iSvm9+oZZquvcgfUxMHn8Gq/b44UbPvjtFOg2yam4xdWXF/RyWCHdc/R9EHorSABeCbefIsm+zcUF3/YQxwpSxM4IZEeH2rTiC7dcrsKw3XsO16xFQz5YI5Bay+CT/wTdMmJd7DdYz7Dyf+pOvcM9WOf/zorxYWSBOMYy0uzbusU2iyIghQ82s7E/Ahg+WARtPgkuTLSB5aL1oCTBKHqQscMr7lo5Ti6RpWLxEdTQMBznc+bMr+6dEtkEcG9zqc6cE9XX+ox3wTU6+HVMfQ1ltCntJ4UKcw3A6INEbw9wgocQa812CIASQ2fE+SCAbz6JxBjIAlFUnD1lUB7S8PdMPwn9plfQgKQ2A5YZqg6FnBdf0rQXIJYxQWKHXj/rBHSUCT0tHACDlzTA+EwWggvkP5AGIxRxm8jhw=
+ - KCOV_CMD="./kcov-master/tmp/usr/local/bin/kcov"
+
cache:
apt: true
directories:
- $TRAVIS_BUILD_DIR/target
+ - $TRAVIS_BUILD_DIR/kcov-master
- $HOME/.cargo
+
addons:
apt:
+ sources:
+ - ubuntu-toolchain-r-test
packages:
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
+ - gcc-4.8
+ - g++-4.8
install:
- rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm install $TRAVIS_NODE_VERSION
+ - (true && [ "$RUN_COVERAGE" = "false" ]) ||
+ (wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
+ tar xzf master.tar.gz &&
+ mkdir -p kcov-master/build &&
+ cd kcov-master/build &&
+ cmake .. &&
+ make && make install DESTDIR=../tmp &&
+ cd)
script:
- - if [ "$RUN_TESTS" = "true" ]; then cargo test --release --verbose ${FEATURES} ${TARGETS}; fi
- - if [ "$RUN_BENCHES" = "true" ]; then cargo bench --no-run ${FEATURES} ${TARGETS}; fi
- - if [ "$RUN_BUILD" = "true" ]; then cargo build --release --verbose ${FEATURES}; fi
- - if [ "$RUN_BUILD" = "true" ]; then tar cvzf parity${ARCHIVE_SUFFIX}.tar.gz -C target/release parity; fi
+ - if [ "$RUN_TESTS" = "true" ]; then ./test.sh; fi
+ - if [ "$RUN_COVERAGE" = "true" ]; then ./scripts/cov.sh "$KCOV_CMD"; fi
after_success: |
- [ "$RUN_COVERAGE" = "true" ] &&
- wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
- tar xzf master.tar.gz && mkdir kcov-master/build && cd kcov-master/build && cmake .. && make && make install DESTDIR=../tmp && cd ../.. &&
- cargo test --no-run ${KCOV_FEATURES} ${TARGETS} &&
- $KCOV_CMD target/debug/deps/ethkey-* &&
- $KCOV_CMD target/debug/deps/ethstore-* &&
- $KCOV_CMD target/debug/deps/ethcore_util-* &&
- $KCOV_CMD target/debug/deps/ethash-* &&
- $KCOV_CMD target/debug/deps/ethcore-* &&
- $KCOV_CMD target/debug/deps/ethsync-* &&
- $KCOV_CMD target/debug/deps/ethcore_rpc-* &&
- $KCOV_CMD target/debug/deps/ethcore_dapps-* &&
- $KCOV_CMD target/debug/deps/ethcore_signer-* &&
- $KCOV_CMD target/debug/deps/ethjson-* &&
- $KCOV_CMD target/debug/parity-* &&
[ $TRAVIS_BRANCH = master ] &&
[ $TRAVIS_PULL_REQUEST = false ] &&
[ $TRAVIS_RUST_VERSION = stable ] &&
- cargo doc --no-deps --verbose ${KCOV_FEATURES} ${TARGETS} &&
- echo '' > target/doc/index.html &&
+ ./scripts/doc.sh &&
pip install --user ghp-import &&
/home/travis/.local/bin/ghp-import -n target/doc &&
git push -fq https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git gh-pages
-
-deploy:
- provider: releases
- api_key:
- secure: "t+oGT/4lsy7IScw5s86Dpntl5Nyck4qG6nhHwMScc6FYzwLldgwgJaafL8Ej+HG+b7nFLriN+Snoa4YQ5o74X5ZlSWubVREOYQlL/fq7vcPB0DwAZ0Jufq1QW2R1M+3SwwF1eAwTv2W3G7A2K7dxjCVvENcy/gdxnZ36NeUPsqaCC9UcI2Yc7+4jyQwvx6ZfBvQeu+HbKENA0eUNs2ZQOID/1IPy0LJBvSyxAQYsysXdjTzGdNu4+Iba20E8uWYe4fAbgz+gwGarXg1L6D6gKyMlWkViqWjvXWBuDJJqMQZ3rw41AwZOoh3mKd2Lc0l6l4oZcEqPuob0yKTNjz1tuJy9xKTC2F2bDzsvUgk1IRfMK5ukXXXS09ZCZWuA9/GtnsqJ1xGTiwX+DhQzpVBHaBiseSNlYE1YN/3jNyGY+iSts1qut+1BwE7swmcTLsAPoAy8Ue+f7ErNoCg1lm71vq7VO2DLn7x2NqHyHUEuJ+7olDHSdE84G7d9otDRu/+TfMOw7GXwTaha6yJRInuNsnj4CFMLNVvYACzCC2idB7f7nUZoSFi9jf18S9fCMPVmazMrFj4g95HWrVHkjpV5zRTeUdTWw6DJl6pC9HFqORHdCvLv4Rc4dm5r3CmOcAQ0ZuiccV2oKzw4/Wic96daae8M5f5KSQ/WTr+h0wXZKp0="
- skip_cleanup: true
- file: parity${ARCHIVE_SUFFIX}.tar.gz
- on:
- tags: true
-
-notifications:
- webhooks:
- urls:
- - https://hooks.slack.com/services/${SLACK_WEBHOOK}
- on_success: always
- on_failure: always
- on_start: never
-
-notifications:
- slack:
- rooms:
- - ethcore:4EGxt9WP6AS7uX4JKXSfR9vi#chatops
diff --git a/cov.sh b/cov.sh
deleted file mode 100755
index 8de2264c0..000000000
--- a/cov.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-# Installing KCOV under ubuntu
-# https://users.rust-lang.org/t/tutorial-how-to-collect-test-coverages-for-rust-project/650#
-### Install deps
-# $ sudo apt-get install libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc binutils-dev libiberty-dev
-#
-### Compile kcov
-# $ wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz && tar xf master.tar.gz
-# $ cd kcov-master && mkdir build && cd build
-# $ cmake .. && make && sudo make install
-
-### Running coverage
-if ! type kcov > /dev/null; then
- echo "Install kcov first (details inside this file). Aborting."
- exit 1
-fi
-
-cargo test \
- -p ethkey \
- -p ethstore \
- -p ethash \
- -p ethcore-util \
- -p ethcore \
- -p ethsync \
- -p ethcore-rpc \
- -p parity \
- -p ethcore-signer \
- -p ethcore-dapps \
- --no-run || exit $?
-rm -rf target/coverage
-mkdir -p target/coverage
-
-EXCLUDE="~/.multirust,rocksdb,secp256k1,src/tests,util/json-tests,util/src/network/tests,sync/src/tests,ethcore/src/tests,ethcore/src/evm/tests,ethstore/tests"
-kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethkey-*
-kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethstore-*
-kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethcore-*
-kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethash-*
-kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethcore_util-*
-kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethsync-*
-kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethcore_rpc-*
-kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethcore_signer-*
-kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethcore_dapps-*
-xdg-open target/coverage/index.html
diff --git a/add_license.sh b/scripts/add_license.sh
similarity index 100%
rename from add_license.sh
rename to scripts/add_license.sh
diff --git a/scripts/cov.sh b/scripts/cov.sh
new file mode 100755
index 000000000..49ef97c09
--- /dev/null
+++ b/scripts/cov.sh
@@ -0,0 +1,53 @@
+#!/bin/sh
+# Installing KCOV under ubuntu
+# https://users.rust-lang.org/t/tutorial-how-to-collect-test-coverages-for-rust-project/650#
+### Install deps
+# $ sudo apt-get install libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc binutils-dev libiberty-dev
+#
+### Compile kcov
+# $ wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz && tar xf master.tar.gz
+# $ cd kcov-master && mkdir build && cd build
+# $ cmake .. && make && sudo make install
+
+### Running coverage
+
+set -x
+
+KCOV=${1:-kcov}
+
+if ! type $KCOV > /dev/null; then
+ echo "Install kcov first (details inside this file). Aborting."
+ exit 1
+fi
+
+. ./scripts/targets.sh
+cargo test $TARGETS --no-run || exit $?
+
+
+
+KCOV_TARGET="target/kcov"
+KCOV_FLAGS="--verify"
+EXCLUDE="/usr/lib,\
+/usr/include,\
+$HOME/.cargo,\
+$HOME/.multirust,\
+rocksdb,\
+secp256k1,\
+src/tests,\
+util/json-tests,\
+util/src/network/tests,\
+ethcore/src/evm/tests,\
+ethstore/tests\
+"
+
+rm -rf $KCOV_TARGET
+mkdir -p $KCOV_TARGET
+
+for FILE in `find target/debug/deps ! -name "*.*"`
+do
+ $KCOV --exclude-pattern $EXCLUDE $KCOV_FLAGS $KCOV_TARGET $FILE
+done
+
+$KCOV --coveralls-id=${TRAVIS_JOB_ID} --exclude-pattern $EXCLUDE $KCOV_FLAGS $KCOV_TARGET target/debug/parity-*
+
+exit 0
diff --git a/scripts/doc.sh b/scripts/doc.sh
new file mode 100755
index 000000000..657f47567
--- /dev/null
+++ b/scripts/doc.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+# generate documentation only for partiy and ethcore libraries
+
+. ./scripts/targets.sh
+
+cargo doc --no-deps --verbose $TARGETS &&
+ echo '' > target/doc/index.html
diff --git a/fmt.sh b/scripts/fmt.sh
similarity index 100%
rename from fmt.sh
rename to scripts/fmt.sh
diff --git a/hook.sh b/scripts/hook.sh
similarity index 64%
rename from hook.sh
rename to scripts/hook.sh
index 9ce825f80..9b5512ac0 100755
--- a/hook.sh
+++ b/scripts/hook.sh
@@ -1,5 +1,7 @@
#!/bin/sh
FILE=./.git/hooks/pre-push
+. ./scripts/targets.sh
+
echo "#!/bin/sh\n" > $FILE
# Exit on any error
echo "set -e" >> $FILE
@@ -7,6 +9,6 @@ echo "set -e" >> $FILE
echo "cargo build --features dev" >> $FILE
# Build tests
echo "cargo test --no-run --features dev \\" >> $FILE
-echo " -p ethkey -p ethstore -p ethash -p ethcore-util -p ethcore -p ethsync -p ethcore-rpc -p parity -p ethcore-dapps -p ethcore-signer" >> $FILE
+echo $TARGETS >> $FILE
echo "" >> $FILE
chmod +x $FILE
diff --git a/doc.sh b/scripts/targets.sh
old mode 100755
new mode 100644
similarity index 60%
rename from doc.sh
rename to scripts/targets.sh
index 41251f7a8..4c2b7ca68
--- a/doc.sh
+++ b/scripts/targets.sh
@@ -1,7 +1,6 @@
-#!/bin/sh
-# generate documentation only for partiy and ethcore libraries
+#!/bin/bash
-cargo doc --no-deps --verbose \
+export TARGETS="
-p ethkey \
-p ethstore \
-p ethash \
@@ -12,3 +11,4 @@ cargo doc --no-deps --verbose \
-p ethcore-signer \
-p ethcore-dapps \
-p parity \
+ -p bigint"
diff --git a/test.sh b/test.sh
index a62c835e8..0de4d758c 100755
--- a/test.sh
+++ b/test.sh
@@ -1,15 +1,18 @@
#!/bin/sh
# Running Parity Full Test Sute
-cargo test --features ethcore/json-tests $1 \
- -p ethkey \
- -p ethstore \
- -p ethash \
- -p ethcore-util \
- -p ethcore \
- -p ethsync \
- -p ethcore-rpc \
- -p ethcore-signer \
- -p ethcore-dapps \
- -p parity \
- -p bigint
+FEATURES="--features ethcore/json-tests"
+
+case $1 in
+ --no-json)
+ FEATURES=""
+ shift # past argument=value
+ ;;
+ *)
+ # unknown option
+ ;;
+esac
+
+. ./scripts/targets.sh
+cargo test $FEATURES $TARGETS $1 \
+