diff --git a/.travis.yml b/.travis.yml index 258b2307..cad578af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,17 @@ env: global: - BOOST_INSTALL_DIR="$HOME/.local" - BOOST_VERSION="1.67.0" + - PROJECT_VERSION_MAJOR="0" + - PROJECT_VERSION_MINOR="1" + - 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=" matrix: include: @@ -50,14 +61,35 @@ compiler: - gcc before_script: - - cd $TRAVIS_BUILD_DIR + - cd ${TRAVIS_BUILD_DIR} - travis_wait source $TRAVIS_BUILD_DIR/toolchain/install-boost.sh - mkdir build - cd build - - source $TRAVIS_BUILD_DIR/toolchain/install-boost.sh && ${CMAKE_COMMAND} -DBOOST_ROOT:PATHNAME=$BOOST_ROOT .. + - > + source ${TRAVIS_BUILD_DIR}/toolchain/install-boost.sh && ${CMAKE_COMMAND} -DBOOST_ROOT:PATHNAME=$BOOST_ROOT + -DPROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR} + -DPROJECT_VERSION_MINOR=${PROJECT_VERSION_MINOR} + -DPROJECT_VERSION_PATCH=${PROJECT_VERSION_PATCH} .. script: - ${CXX} --version - echo CXXFLAGS=${CXXFLAGS} - make + - make package + + +after_success: + - echo ${TRAVIS_BRANCH} + - | + if [ "$TRAVIS_BRANCH" = "master" ]; 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=stable;deb.architecture=${PACKAGE_ARCHITECTURE}" -T ${TRAVIS_BUILD_DIR}/build/${PACKAGE_NAME_DEB} + fi + if [ "$TRAVIS_OS_NAME" = "osx" ]; 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 + git tag release-${TRAVIS_OS_NAME}-${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 diff --git a/CMakeLists.txt b/CMakeLists.txt index b08e58a2..8c7da48f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,15 @@ cmake_minimum_required(VERSION 3.10) project(bluzelle CXX) +include(swarm_version.cmake) +message("Build version ${PROJECT_VERSION}") + +# Setup version header +configure_file(${PROJECT_SOURCE_DIR}/swarm_version.hpp.in ${CMAKE_BINARY_DIR}/swarm_version.hpp.tmp) +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/swarm_version.hpp.tmp ${CMAKE_BINARY_DIR}/swarm_version.hpp) +execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/swarm_version.hpp.tmp) +include_directories(${CMAKE_BINARY_DIR}) + # use ccache if available... find_program(CCACHE_FOUND ccache) if(CCACHE_FOUND) diff --git a/include/bluzelle.hpp b/include/bluzelle.hpp index 15afe677..6d740a02 100644 --- a/include/bluzelle.hpp +++ b/include/bluzelle.hpp @@ -17,6 +17,7 @@ #include #include #include +#include #define GCC_VERSION (__GNUC__ * 10000 \ + __GNUC_MINOR__ * 100 \ @@ -26,8 +27,6 @@ namespace bzn { using message = Json::Value; - const std::string_view BLUZELLE_VERSION = "0.0.1"; - using uuid_t = std::string; } // bzn diff --git a/options/options.cpp b/options/options.cpp index 064140bf..726d2f89 100644 --- a/options/options.cpp +++ b/options/options.cpp @@ -16,6 +16,7 @@ #include #include #include +#include namespace po = boost::program_options; using namespace bzn; @@ -259,7 +260,7 @@ options::parse(int argc, const char* argv[]) if (vm.count("version")) { - std::cout << "Bluzelle" << ": v" << BLUZELLE_VERSION << std::endl; + std::cout << "Bluzelle" << ": v" << SWARM_VERSION << std::endl; return false; } diff --git a/pkg/CMakeLists.txt b/pkg/CMakeLists.txt index f96e60ee..ec7a12a1 100644 --- a/pkg/CMakeLists.txt +++ b/pkg/CMakeLists.txt @@ -9,4 +9,8 @@ if (UNIX AND NOT APPLE) endif() endif() +if (APPLE) + add_subdirectory(osx) +endif() + add_subdirectory(docker) diff --git a/pkg/debian/CMakeLists.txt b/pkg/debian/CMakeLists.txt index b8298ad6..48c9e8a3 100644 --- a/pkg/debian/CMakeLists.txt +++ b/pkg/debian/CMakeLists.txt @@ -4,13 +4,14 @@ set(BOOST_DEB_VERSION "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUB set(CPACK_PACKAGE_VENDOR "Bluzelle") set(CPACK_PACKAGE_CONTACT "devops@bluzelle.com") -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A Bluzelle decentralized database node.") -set(CPACK_PACKAGE_NAME "swarmdb") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Bluzelle decentralized database node.") +set(CPACK_PACKAGE_NAME "bluzelle-swarmdb") set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) set(CPACK_DEBIAN_PACKAGE_SECTION "databases") +set(CPACK_DEBIAN_COMPRESSION_TYPE "xz") set(CPACK_SYSTEM_NAME "amd64") set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") diff --git a/pkg/docker/Dockerfile b/pkg/docker/Dockerfile index 3ce29678..73020230 100644 --- a/pkg/docker/Dockerfile +++ b/pkg/docker/Dockerfile @@ -7,7 +7,6 @@ RUN set -x \ gettext-base \ libjsoncpp-dev -ARG SWARM_BUILD_DIR ARG SWARM_NAME COPY swarmdb__amd64.deb /tmp diff --git a/pkg/docker/config.json.template b/pkg/docker/config.json.template index ed49ca1a..09ba1444 100644 --- a/pkg/docker/config.json.template +++ b/pkg/docker/config.json.template @@ -1,9 +1,9 @@ { "listener_address" : "0.0.0.0", - "listener_port" : ${SWARM_PORT}, + "listener_port" : 51010, "ethereum" : "0x006eae72077449caca91078ef78552c0cd9bce8f", - "bootstrap_url" : "${SWARM_BOOTSTRAP_URL}", - "uuid" : "${SWARM_UUID}", - "debug_logging" : true, + "bootstrap_url" : "${NODE_BOOTSTRAP_URL}", + "uuid" : "${NODE_UUID}", + "debug_logging" : ${NODE_DEBUG_LOGGING}, "log_to_stdout" : true } \ No newline at end of file diff --git a/pkg/osx/CMakeLists.txt b/pkg/osx/CMakeLists.txt new file mode 100644 index 00000000..93914c43 --- /dev/null +++ b/pkg/osx/CMakeLists.txt @@ -0,0 +1,21 @@ +message( "Building version: ${PROJECT_VERSION}..." ) + +set(CPACK_PACKAGE_VENDOR "Bluzelle") +set(CPACK_PACKAGE_CONTACT "devops@bluzelle.com") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Bluzelle decentralized database node.") +set(CPACK_PACKAGE_NAME "bluzelle-swarmdb") +set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) +set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) + +set(CPACK_SYSTEM_NAME "amd64") + +set(CPACK_GENERATOR "TGZ") +set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}_${PROJECT_VERSION}_darwin_${CPACK_SYSTEM_NAME}) + +INCLUDE(CPack) + +set(DESTINATION_DIR ./) + +install(PROGRAMS "${PROJECT_BINARY_DIR}/output/swarm" DESTINATION "./") \ No newline at end of file diff --git a/swarm_version.cmake b/swarm_version.cmake new file mode 100644 index 00000000..a4fa25a3 --- /dev/null +++ b/swarm_version.cmake @@ -0,0 +1,5 @@ +# version for swarm +set(PROJECT_VERSION_MAJOR 0 CACHE STRING "Set the project major version") +set(PROJECT_VERSION_MINOR 0 CACHE STRING "Set the project minor version") +set(PROJECT_VERSION_PATCH "0-desk" CACHE STRING "Set the project patch version") +set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}") \ No newline at end of file diff --git a/swarm_version.hpp.in b/swarm_version.hpp.in new file mode 100644 index 00000000..a14598cb --- /dev/null +++ b/swarm_version.hpp.in @@ -0,0 +1,17 @@ +// Copyright (C) 2018 Bluzelle +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License, version 3, +// as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +#pragma once + +#define SWARM_VERSION "@PROJECT_VERSION@" \ No newline at end of file