This repository has been archived by the owner on Mar 3, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 36
/
.travis.yml
126 lines (117 loc) · 7.79 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
sudo: false
language: cpp
env:
global:
- PROJECT_VERSION_MAJOR="0"
- PROJECT_VERSION_MINOR="6"
- PROJECT_VERSION_PATCH="${TRAVIS_BUILD_NUMBER}"
- PROJECT_VERSION="${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
- PACKAGE_ARCHITECTURE="amd64"
- PACKAGE_NAME="bluzelle-swarmdb"
- PACKAGE_NAME_DEB="${PACKAGE_NAME}_${PROJECT_VERSION}_${PACKAGE_ARCHITECTURE}.deb"
- PACKAGE_NAME_OSX="${PACKAGE_NAME}_${PROJECT_VERSION}_darwin_${PACKAGE_ARCHITECTURE}.tar.gz"
- secure: "vF3zRyPiUm+VOVAq1y6TDGqr5s2XYk7In6Zh8LbX0VNv6ROQ7HEwusbO6tuR4I0Og0m59RplQd3oAr3nxLMN/85YQw1vvVbc+TC1wIenM15bfEgCKjTsiFbIEf7fPgUyqVg/YLGSEsskcXiFrfb5IyFmAj+v37u0N56u4B3/ga82e5RIXvu641z1Ex2sS0L/MhN4TOluI/5ASeg/D6QHKVx59HiX/PjOkWbCKY10p5CzbXgNyik37NrI1ZKnLTtYFCznuPeXpt4Vx0YdCLOaJw4uG2ay2CjayOmOvXlNWb9iHXL5EveovptDhSSqAJjzy+MqwnrjJHsciOBHX2efpeCpSBx6tGw9e8bi6Xg3MJvdPjEcfKoAWBG2MdJUAdGk48eduvdPqnx/Ig7//ez9aYLgbXaac3k09N5SeyPZuRE2mnQoXNcO2ApL3NfOAJ/3WRtFo/scgu8rBfEZrIqy2BAgnOK86TYZwIR1CabQgPDClY9XddcZ+PBQ4a+j/CqDTcjdYR5I7ABV4nPgCU2rheKEhKMv8yw4kFl5U6wFUOtkEdxFJk3+d8oxHPrQf0CDFKovkSEcMzEgcJE1DsVLNzNPlE9y12+Rsopt/fcCNqSvyl22XaI7O9UnE/j+Y2ATlydB+6olEvOEd02K9WYuVUotyeBu4bB8sY0V4VDREUI="
- secure: "Z4h7T0uHpz3WLtX93NckznB/FujL7LncaZdxJQ5DrWOtIpUJA7REix8oMDyTaXqhsksX5x24CdxuArmFkgE5G1xJK7sIgI7R6RlDG0shRyfMBWaB0Olbsxq9FiZb11Cmguq2ANoPdwFj53BwSjLs+8QW7wWx2NE4TF0JWWNBVVi1hcX5cPc2xW8oEy7657mxCTq6/G8upOonMRHmiB3M+u9Xn0Sv7+SCmtkFw6uUSGfRRkwwRl0haf0qwlOg6o6Aihen0zFEM/Rf3imx5JhyxtlW6KQBG8WZOmv2gQ9AXD9sAZG4H52Klr81QIhKrzlQNEoLvPtkhqTFXCGlBRH7bBXbCYRFYhvm8j1ja2tM46wZHwdIx5gtUqLk5+PcNdFEO335003GeOPewzayk44WWkPQyHPkNLTLAnLJawKkSDsLsWIokl0BGz5m2O08GBoohTd0LaOQrEi3npI92s6OasxPh9wcCwYYwGT5WqLmnKc6XRpI5I+RFN6yjPYCYUwgCd5LVkOG5hpvg8tTYG63gxshPJWSWv5yObMPppmObnpQNjPOdw63m9cpnevo2DbGLZsHedDyqMGhjZnn3CG8ZlRQvdPLo56l2gFRxhw8J2xnk1C2ffil8C9IjiTLBK+Y5ALd17BuI40ZA+ClRHy8Z6MFXgMfFlr/YBrUtY3tvGg="
- secure: "Hp7Ww6XhkZvzOsktsaL8lyiMbXLP3u/Entj7UXomywDr7gMIAyoIiD122bZ1Wa+sbNfnNd8lKS1AZxMtwxbhAK9hcB6ZvypAE3i4pfoQWxd4jq3pXltJ2oLbXEWzH1aGcTtibf2vI6WBpI8mPGWrykBeQfCzd0qs6t5pNzeA43ta77WCADWJivxe69l4rqxUGmXZVbGzApUgn5UP7FTscuByitQm6KPft63sre6aSC1P9FKWD4VOFlDqol3v+Bsmn05bNc9a/UuLq/C6vSa6BxsJpalMIRtlXE+MRXVpYxnBNS1UlH+8LA6txG3fwisyvwXG5KjO4tDuVLIYzuK1+TBCCnFBbTJ+2aCZ9iR7sA34A+AUbF2JyTfGtR4RnOd2cMgGuWgn1ASoe2c5GE45aK/s+ijDsKpzzHl8gR3QJS7yd0U/KCgnW3bsq4mRq95sjA/5MZuS2gmIpMS0JoprLmjXikZLI3LDQc8VHqK5U2ne/W7xZyszc57IlJI6HiL2v2yw25m8/yna7PXyAYFPsZ8LRzoZJvq/uBVh8sAnhpgMfQ5FxOuJGvhH56UjvcXqIYfz1a4ELIl8b2rLq6M1qUWYHwlTq8xHHhWShQBpfEiZQBncD0+K7LO7KhJb78sqJcbMFcgsWooKqlsElGQwK92BUkECRu8eC4n8uaaJ/GM="
- secure: "D3BGFKFKHDG0ajTpvEAP7poQmOvSUq2l7jG9q7hK+xHDRKBhM7YfSUJicz5H358VBKURoURLbykq3WXw/gpzTSVqpusXJ4UjGiAZLRXHlTsyXW0IVGvXXPx53SiJkHbfVC/3MK22rzV9LYR3wxEt7k9xKLfRGBr+tAiTzi/ikox/4ibIx6cb0PQGrVTbeoSJfJfF6VQvzeaoST7K9CREJGb9PuLpiXPRt0CIeY5Y1r7+HCJSzO2XWX+8i+DpMB7ZItQjrt09vaoDoUS5WPxL92+S8nrWNH++LhEzvq1PTtZs0bQkLHG+zfrM/5j2Q34HP6QZceVSixMzEz2l9wE0lZI5d21udnh1CApbaZvHHvLuR7cvZGv6VCNZefZhKTsDAs+GRMYLhZgauqxnOxug0ZO8ErLHJ0K87l/U0krBUCtMTO5FPodEPahXVOe9UXlBnl8FFhihQ4VB23TXWbFy0qa1M1iCV3jT27hpDHCmPuD5KwGWzDITrnaC0+YzQpmOuZKLB/wlQdJD7XmRkV3OCye1ejwFpwCD1SMJLZBTd4rReAgxxgT4f0xq/IuoGORvAXYDbZeYNrISYrxN8u6LAAc56IDQ7F8nZO/l85gPZaSrkzL4zeuDhWsMr/SBysBL2XlwhL9iSYHWEhgr67hJVOzVUqpMCH6nr2Y8hc4cK1w="
matrix:
include:
- os: linux
dist: xenial
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- sourceline: 'deb [trusted=yes] http://ppa.launchpad.net/maarten-fonville/protobuf/ubuntu xenial main'
packages:
- g++-7
- pkg-config
- protobuf-compiler
- libprotobuf-dev
- libsnappy-dev
- libbz2-dev
env:
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
- CMAKE_URL="https://cmake.org/files/v3.12/cmake-3.12.1-Linux-x86_64.tar.gz"
- CMAKE_COMMAND="$HOME/.local/bin/cmake -DPMD_EXE=$HOME/pmd-bin-6.6.0/bin/run.sh ${CMAKE_OPTIONS}"
- os: osx
osx_image: xcode10.2
env:
- MATRIX_EVAL="brew unlink python && brew install protobuf snappy lz4 git-lfs && brew uninstall --ignore-dependencies boost"
- CMAKE_COMMAND="cmake ${CMAKE_OPTIONS}"
cache:
directories:
- $HOME/.local
before_install:
- eval "${MATRIX_EVAL}"
- mkdir -p $HOME/.local
- |
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
pip install --user cpp-coveralls
if [ ! -e $HOME/.local/bin/cmake ]; then
echo "CMake not found in the cache, get and extract it..."
travis_retry curl -L ${CMAKE_URL} \
| tar -xz -C $HOME/.local --strip-components=1
else
echo "Using cached CMake"
fi
fi
- |
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
if [ ! -e $HOME/pmd-bin-6.6.0/bin/run.sh ]; then
echo "PMD not found in the cache, get and extract it..."
cd $HOME
travis_retry curl -OL "https://github.com/pmd/pmd/releases/download/pmd_releases%2F6.6.0/pmd-bin-6.6.0.zip"
unzip pmd-bin-6.6.0.zip
rm pmd-bin-6.6.0.zip
else
echo "Using cached PMD"
fi
fi
compiler:
- gcc
before_script:
- cd ${TRAVIS_BUILD_DIR}
- mkdir build
- cd build
- >
if { [ "$TRAVIS_BRANCH" = "master" ] || [[ $TRAVIS_BRANCH == *"release"* ]]; } && [ $TRAVIS_OS_NAME = "linux" ] ; then
${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR} -DPROJECT_VERSION_MINOR=${PROJECT_VERSION_MINOR} -DPROJECT_VERSION_PATCH=${PROJECT_VERSION_PATCH} ..
else
${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug -DENABLE_GCOV=ON -DPROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR} -DPROJECT_VERSION_MINOR=${PROJECT_VERSION_MINOR} -DPROJECT_VERSION_PATCH=${PROJECT_VERSION_PATCH} ..
fi
script:
- ${CXX} --version
- echo CXXFLAGS=${CXXFLAGS}
- git lfs install
- git lfs pull
- make -j2
- make static_analysis
- ctest
- make package
after_success:
- |
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
coveralls -r ${TRAVIS_BUILD_DIR} -e 'build/boost' -e 'build/openssl' -e 'build/rocksdb' -e 'build/jsoncpp' -e 'build/googletest' -e 'build/proto' -e 'build/CMakeFiles' -e 'build/swarm_version.hpp' -e 'audit/test' -e 'bootstrap/test' -e 'chaos/test' -e 'crud/test' -e 'crypto/test' -e 'ethereum/test' -e 'http/test' -e 'mocks' -e 'node/test' -e 'options/test' -e 'pbft/test' -e 'status/test' -e 'storage/test' -e 'swarm' -e 'include' -e 'utils/test' --gcov-options '\-lp'
fi
- echo ${TRAVIS_BRANCH}
- if [ "$TRAVIS_BRANCH" = "master" ] ; then PACKAGE_COMPONENT="stable" ; else PACKAGE_COMPONENT="unstable" ; fi
- |
if [ "$TRAVIS_BRANCH" = "master" ] || [ "$TRAVIS_BRANCH" = "devel" ] || [[ $TRAVIS_BRANCH == *"release"* ]]; then
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
travis_retry curl -u${REPO_USER}:${REPO_PASSWORD} -XPUT "https://bluzelle.jfrog.io/bluzelle/debian-local/pool/${PACKAGE_NAME_DEB};deb.distribution=all;deb.component=${PACKAGE_COMPONENT};deb.architecture=${PACKAGE_ARCHITECTURE}" -T ${TRAVIS_BUILD_DIR}/build/${PACKAGE_NAME_DEB}
fi
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
if [ "$TRAVIS_BRANCH" = "master" ]; then
travis_retry curl -u${REPO_USER}:${REPO_PASSWORD} -T ${TRAVIS_BUILD_DIR}/build/${PACKAGE_NAME_OSX} "https://bluzelle.jfrog.io/bluzelle/OSX/${PACKAGE_NAME_OSX}"
fi
if [ "$TRAVIS_BRANCH" = "devel" ]; then
travis_retry curl -u${REPO_USER}:${REPO_PASSWORD} -T ${TRAVIS_BUILD_DIR}/build/${PACKAGE_NAME_OSX} "https://bluzelle.jfrog.io/bluzelle/osx-dev/${PACKAGE_COMPONENT}-${PACKAGE_NAME_OSX}"
fi
fi
fi
if [ "$TRAVIS_BRANCH" = "master" ] ; then
git tag ${PROJECT_VERSION}
git remote add origin-swarm https://${GITHUB_TOKEN}@github.com/bluzelle/swarmdb.git > /dev/null 2>&1
git push --quiet --set-upstream origin-swarm ${TRAVIS_BRANCH} --tags
fi