diff --git a/.travis.yml b/.travis.yml index 5fd79872..97b01352 100644 --- a/.travis.yml +++ b/.travis.yml @@ -60,6 +60,7 @@ jobs: - brew cask install xquartz; - brew upgrade cmake; - brew install rocksdb; + - util/build_prep/fetch_boost.sh - util/build_prep/macosx/build_qt.sh install: - brew install ccache; @@ -96,6 +97,7 @@ jobs: - brew cask install xquartz; - brew upgrade cmake; - brew install rocksdb; + - util/build_prep/fetch_boost.sh - util/build_prep/macosx/build_qt.sh install: - brew install ccache; @@ -127,7 +129,8 @@ jobs: - brew update; - brew cask install xquartz; - brew upgrade cmake; - - brew install rocksdb; + - util/build_prep/fetch_rocksdb.sh + - util/build_prep/fetch_boost.sh - util/build_prep/macosx/build_qt.sh install: - pip install --user awscli @@ -169,7 +172,8 @@ jobs: - brew update; - brew cask install xquartz; - brew upgrade cmake; - - brew install rocksdb; + - util/build_prep/fetch_rocksdb.sh + - util/build_prep/fetch_boost.sh - util/build_prep/macosx/build_qt.sh install: - pip install --user awscli @@ -185,7 +189,6 @@ cache: - $HOME/.local - $HOME/Library/Caches/Homebrew - $TRAVIS_BUILD_DIR/load-tester/target - - /tmp/qt/ script: - if [ -n "$ONE_TIME_TESTS" ]; then ci/check-commit-format.sh; fi - if [ -n "$ONE_TIME_TESTS" ]; then doxygen doxygen.config; fi # TODO also deploy the built HTML diff --git a/ci/build-deploy.sh b/ci/build-deploy.sh index d6aef013..bf396f65 100755 --- a/ci/build-deploy.sh +++ b/ci/build-deploy.sh @@ -25,9 +25,11 @@ cmake \ -DNANO_POW_SERVER=ON \ -DNANO_GUI=ON \ -DNANO_ROCKSDB=ON \ + -DROCKSDB_LIBRARIES=/tmp/rocksdb/lib/librocksdb.a \ + -DROCKSDB_INCLUDE_DIRS=/tmp/rocksdb/include \ -DCMAKE_BUILD_TYPE=${CONFIGURATION} \ -DCMAKE_VERBOSE_MAKEFILE=ON \ - -DBOOST_ROOT=/usr/local \ + -DBOOST_ROOT=/tmp/boost/ \ -DQt5_DIR=${qt_dir} \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCI_BUILD=true \ diff --git a/ci/build-travis.sh b/ci/build-travis.sh index 6f9d2c89..d3691ef9 100755 --- a/ci/build-travis.sh +++ b/ci/build-travis.sh @@ -41,16 +41,25 @@ fi ulimit -S -n 8192 +if [[ "$OS" == 'Linux' ]]; then + ROCKSDB="-DROCKSDB_LIBRARIES=/tmp/rocksdb/lib/librocksdb.a \ + -DROCKSDB_INCLUDE_DIRS=/tmp/rocksdb/include" +else + ROCKSDB="" +fi + + cmake \ -G'Unix Makefiles' \ -DACTIVE_NETWORK=nano_test_network \ -DNANO_TEST=ON \ -DNANO_GUI=ON \ -DNANO_ROCKSDB=ON \ + ${ROCKSDB} \ -DNANO_WARN_TO_ERR=ON \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCMAKE_VERBOSE_MAKEFILE=ON \ - -DBOOST_ROOT=/usr/local \ + -DBOOST_ROOT=/tmp/boost/ \ -DQt5_DIR=${qt_dir} \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ ${SANITIZERS} \ diff --git a/docker/ci/Dockerfile-clang b/docker/ci/Dockerfile-clang index d71857b0..6d1ba365 100644 --- a/docker/ci/Dockerfile-clang +++ b/docker/ci/Dockerfile-clang @@ -3,11 +3,8 @@ FROM nanocurrency/nano-env:base RUN apt-get update -qq && apt-get install -yqq \ clang-3.9 lldb-3.9 git -ENV USE_RTTI=1 -RUN git clone https://github.com/facebook/rocksdb.git && \ - cd rocksdb && \ - PORTABLE=1 make static_lib && \ - make install +ADD util/build_prep/fetch_rocksdb.sh fetch_rocksdb.sh +RUN ./fetch_rocksdb.sh ENV CXX=/usr/bin/clang++ ENV CC=/usr/bin/clang @@ -15,9 +12,8 @@ RUN ln -s /usr/bin/clang-3.9 /usr/bin/clang RUN ln -s /usr/bin/clang++-3.9 /usr/bin/clang++ RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 RUN update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100 -ENV BOOST_ROOT=/usr/local -ADD util/build_prep/bootstrap_boost.sh bootstrap_boost.sh +ENV BOOST_ROOT=/tmp/boost -RUN ./bootstrap_boost.sh -m -c +ADD util/build_prep/fetch_boost.sh fetch_boost.sh -RUN rm bootstrap_boost.sh +RUN ./fetch_boost.sh diff --git a/docker/ci/Dockerfile-gcc b/docker/ci/Dockerfile-gcc index 32fc763d..9378cf3e 100644 --- a/docker/ci/Dockerfile-gcc +++ b/docker/ci/Dockerfile-gcc @@ -2,13 +2,11 @@ FROM nanocurrency/nano-env:base RUN apt-get install -yqq git -ENV USE_RTTI=1 -RUN git clone https://github.com/facebook/rocksdb.git && \ - cd rocksdb && \ - PORTABLE=1 make static_lib && \ - make install +ADD util/build_prep/fetch_rocksdb.sh fetch_rocksdb.sh +RUN ./fetch_rocksdb.sh -ENV BOOST_ROOT=/usr/local -ADD util/build_prep/bootstrap_boost.sh bootstrap_boost.sh -RUN ./bootstrap_boost.sh -m -RUN rm bootstrap_boost.sh +ENV BOOST_ROOT=/tmp/boost + +ADD util/build_prep/fetch_boost.sh fetch_boost.sh + +RUN TRAVIS_COMPILER=gcc ./fetch_boost.sh diff --git a/util/build_prep/fetch_boost.sh b/util/build_prep/fetch_boost.sh new file mode 100755 index 00000000..0f1a88b6 --- /dev/null +++ b/util/build_prep/fetch_boost.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +OS=`uname` + +TRAVIS_COMPILER="${TRAVIS_COMPILER:-clang}" + +pushd /tmp +wget -O boost-$OS-$TRAVIS_COMPILER-latest.tgz https://s3.us-east-2.amazonaws.com/repo.nano.org/artifacts/boost-$OS-$TRAVIS_COMPILER-latest.tgz +tar -zxf boost-$OS-$TRAVIS_COMPILER-latest.tgz +mv tmp/* . +rm -fr tmp +popd diff --git a/util/build_prep/fetch_rocksdb.sh b/util/build_prep/fetch_rocksdb.sh new file mode 100755 index 00000000..61d14d43 --- /dev/null +++ b/util/build_prep/fetch_rocksdb.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +OS=`uname` + +if [[ $OS =~ "Darwin" ]]; then + artifact="rocksdb-clang-latest.tgz" +else + artifact="rocksdb-gcc-latest.tgz" +fi + +pushd /tmp +wget -O $artifact https://s3.us-east-2.amazonaws.com/repo.nano.org/artifacts/$artifact +tar -zxf $artifact +mv tmp/* . +rm -fr tmp +popd diff --git a/util/build_prep/macosx/build_qt.sh b/util/build_prep/macosx/build_qt.sh index 6af76aad..4dde70b7 100755 --- a/util/build_prep/macosx/build_qt.sh +++ b/util/build_prep/macosx/build_qt.sh @@ -1,10 +1,8 @@ #!/usr/bin/env bash -if [[ ! -d "/tmp/qt/lib/cmake" ]]; then - pushd /tmp - wget -O qtbase-latest.tgz https://s3.us-east-2.amazonaws.com/$AWS_BUCKET/artifacts/qtbase-latest.tgz - tar -zxf qtbase-latest.tgz - mv tmp/* . - rm -fr tmp - popd -fi +pushd /tmp +wget -O qtbase-clang-latest.tgz https://s3.us-east-2.amazonaws.com/repo.nano.org/artifacts/qtbase-clang-latest.tgz +tar -zxf qtbase-clang-latest.tgz +mv tmp/* . +rm -fr tmp +popd