diff --git a/.gitignore b/.gitignore index ed6de26ee..d66681c3a 100644 --- a/.gitignore +++ b/.gitignore @@ -20,15 +20,6 @@ build/ cmake-build-* cmake/DownloadProject/ dist/ -memgraph -release/barrier/ -release/barrier_* -release/config/ -release/libs/ -release/memgraph_* -release/websockify/ -release/neo4j-browser/ -release/bundle-report.html src/query/frontend/opencypher/generated/ tags ve/ diff --git a/CMakeLists.txt b/CMakeLists.txt index a55b5794e..4b40283f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,12 +30,7 @@ set(CMAKE_C_COMPILER "clang") set(CMAKE_CXX_COMPILER "clang++") # ----------------------------------------------------------------------------- -# set project name -# get directory name -get_filename_component(project_name ${CMAKE_SOURCE_DIR} NAME) -# replace whitespaces with underscores -string(REPLACE " " "_" project_name ${project_name}) -project(${project_name} VERSION 0.7.0) +project(memgraph VERSION 0.7.0) # ----------------------------------------------------------------------------- # setup CMake module path, defines path for include() and find_package() @@ -85,7 +80,7 @@ set(tests_dir ${CMAKE_SOURCE_DIR}/tests) # ----------------------------------------------------------------------------- # Generate a version.hpp file -set(VERSION_STRING ${${project_name}_VERSION}) +set(VERSION_STRING ${memgraph_VERSION}) configure_file(${src_dir}/version.hpp.in include/version.hpp @ONLY) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) @@ -293,23 +288,12 @@ add_subdirectory(tests) # ----------------------------------------------------------------------------- # memgraph build name -execute_process( - OUTPUT_VARIABLE COMMIT_BRANCH - COMMAND git rev-parse --abbrev-ref HEAD -) execute_process( OUTPUT_VARIABLE COMMIT_HASH COMMAND git rev-parse --short HEAD ) -execute_process( - OUTPUT_VARIABLE COMMIT_NO - COMMAND git rev-list --count HEAD -) -string(STRIP ${COMMIT_BRANCH} COMMIT_BRANCH) -string(STRIP ${COMMIT_NO} COMMIT_NO) string(STRIP ${COMMIT_HASH} COMMIT_HASH) -set(MEMGRAPH_BUILD_NAME - "memgraph_${COMMIT_NO}_${COMMIT_HASH}_${COMMIT_BRANCH}_${CMAKE_BUILD_TYPE}") +set(MEMGRAPH_BUILD_NAME "memgraph-${memgraph_VERSION}-${COMMIT_HASH}_${CMAKE_BUILD_TYPE}") add_custom_target(memgraph_link_target ALL COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_BINARY_DIR}/${MEMGRAPH_BUILD_NAME} ${CMAKE_BINARY_DIR}/memgraph DEPENDS ${MEMGRAPH_BUILD_NAME}) # ----------------------------------------------------------------------------- @@ -355,10 +339,11 @@ set(CPACK_PACKAGE_NAME memgraph) set(CPACK_PACKAGE_VENDOR "Memgraph Ltd.") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "High performance, in-memory, transactional graph database") -set(CPACK_PACKAGE_VERSION_MAJOR ${${project_name}_VERSION_MAJOR}) -set(CPACK_PACKAGE_VERSION_MINOR ${${project_name}_VERSION_MINOR}) -set(CPACK_PACKAGE_VERSION_PATCH ${${project_name}_VERSION_PATCH}) -set(CPACK_PACKAGE_VERSION_TWEAK ${${project_name}_VERSION_TWEAK}) +set(CPACK_PACKAGE_VERSION_MAJOR ${memgraph_VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${memgraph_VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${memgraph_VERSION_PATCH}) +set(CPACK_PACKAGE_VERSION_TWEAK ${memgraph_VERSION_TWEAK}) +set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${memgraph_VERSION}-${COMMIT_HASH}${CPACK_SYSTEM_NAME}) # TODO: Longer description, readme and license files. # DEB specific set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Memgraph Ltd.") diff --git a/docs/user_technical/installation.md b/docs/user_technical/installation.md index b9b5d966f..e925b8289 100644 --- a/docs/user_technical/installation.md +++ b/docs/user_technical/installation.md @@ -1,10 +1,10 @@ ## Installation -Memgraph is a 64-bit Linux compatible database management system. For the -purpose of Alpha testing Memgraph has been packed into a -[Docker](https://www.docker.com) image based on Ubuntu 16.04. Before -proceeding with the installation, please install the Docker engine on your -system. Instructions how to install Docker can be found on the +Memgraph is a 64-bit Linux compatible database management system. Currently, +the Memgraph binary is offered only as a [Docker](https://www.docker.com) +image based on Debian Stretch. Before proceeding with the installation, please +install the Docker engine on the system. Instructions how to install Docker +can be found on the [official Docker website](https://docs.docker.com/engine/installation). Memgraph Docker image was built with Docker version `1.12` and should be compatible with all latter versions. @@ -15,7 +15,7 @@ After a successful download the Memgraph Docker image can be imported into Docker: ``` -docker load -i /path/to/memgraph_alpha_v0.7.0.tar.gz +docker load -i /path/to/memgraph-<version>-docker.tar.gz ``` ### Image Configuration & Running Memgraph @@ -23,38 +23,65 @@ docker load -i /path/to/memgraph_alpha_v0.7.0.tar.gz Memgraph can be started by executing: ``` -docker run -it -p 7687:7687 memgraph_alpha_v0.7.0 +docker run -it -p 7687:7687 memgraph:<version> ``` The `-it` option enables displaying Memgraph's logs inside the current shell. The `-p` option is used to specify the port on which Memgraph will listen for requests. Memgraph uses the Bolt protocol for network communication, which -uses port `7687` by default. +uses port `7687` by default. The `<version>` part are 3 numbers specifying the +version, e.g. `1.2.3`. It is recommended to perform some additional Docker configuration. Memgraph is currently an in-memory database management system, but it periodically stores all data to the hard drive. These storages are referred to as *snapshots* and -are used for recovering data in case of a restart. When starting Memgraph, a -folder for snapshots needs to be created and mounted on the host file system. -It is also recommended to run the Docker container in the background. On a -Linux system all of that can be achieved with the following shell commands: +are used for recovering data in case of a restart. + +When starting Memgraph, a folder for snapshots needs to be created and mounted on the host file system. +This can be easily done using Docker's named volumes. For example: + +``` +# Run Memgraph. +docker run -p 7687:7687 -v mg_data:/var/lib/memgraph memgraph:<version> +``` + +The `-v` option will make a named volume directory called `mg_data` and +Memgraph will store snapshots there. Named volumes are usually found in +`/var/lib/docker/volumes`. + +The same can be achieved for logs and configuration. All supported volumes +which can be mounted are: + + * `/var/lib/memgraph`, for storing snapshots; + * `/var/log/memgraph`, for storing logs and + * `/etc/memgraph`, for Memgraph configuration. + +Another way to expose the configuration and data is to use a full path to some +directory on the system. In such a case, the directory first needs to be +created and allow docker image to write inside. For example, to create a +snapshots volume in the current directory: ``` # Create the snapshots folder on the host. -mkdir -p memgraph +mkdir -m 777 mg_data # Docker expects full path to the created folder. -FULL_OUTPUT_PATH=$PWD/memgraph +FULL_OUTPUT_PATH=$PWD/mg_data # Run Memgraph. -docker run -d -p 7687:7687 -v ${FULL_OUTPUT_PATH}:/var/lib/memgraph --name <memgraph_docker_container_name> memgraph_alpha_v0.7.0 +docker run -p 7687:7687 -v ${FULL_OUTPUT_PATH}:/var/lib/memgraph memgraph:<version> ``` -In the commands above `-d` means that the container will be detached (run in -the background). `-v` mounts a host folder to a path inside the Docker -container. The output folder contains Memgraph's periodical snapshots and log -file. The log file should be uploaded to Memgraph's issue tracking system in -case of an error. With `--name` a custom name for the container can be set -(useful for easier container management). `<memgraph_docker_container_name>` -could be any convenient name e.g. `memgraph_alpha`. +In this example, `-v` mounts a host folder `$PWD/mg_data` to a path inside the Docker +container. + +Other than setting the configuration, it is also recommended to run the Docker +container in the background. This is achieved with `-d` option. In such a +case, the name should be set for the running container, so that it can be +easily found and shut down when needed. For example: + +``` +# Run Memgraph. +docker run -p 7687:7687 -d --name <memgraph_docker_container_name> memgraph:<version> +``` ### Memgraph Configuration Parameters diff --git a/experimental/distributed/tests/CMakeLists.txt b/experimental/distributed/tests/CMakeLists.txt index 50ba2f12b..3b33507b2 100644 --- a/experimental/distributed/tests/CMakeLists.txt +++ b/experimental/distributed/tests/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.1) -project(${project_name}_tests) +project(memgraph_tests) enable_testing() @@ -19,8 +19,7 @@ foreach(test_cpp ${test_type_cpps}) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${test_cpp} NAME_WE) - # set target name in format {project_name}__{test_type}__{exec_name} - set(target_name ${project_name}__${test_type}__${exec_name}) + set(target_name memgraph__${test_type}__${exec_name}) # build exec file add_executable(${target_name} ${test_cpp}) diff --git a/poc/CMakeLists.txt b/poc/CMakeLists.txt index 86ed776f5..030d916e5 100644 --- a/poc/CMakeLists.txt +++ b/poc/CMakeLists.txt @@ -14,8 +14,7 @@ foreach(poc_cpp ${poc_cpps}) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${poc_cpp} NAME_WE) - # set target name in format {project_name}_{test_type}_{exec_name} - set(target_name ${project_name}_poc_${exec_name}) + set(target_name memgraph_poc_${exec_name}) # build exe file add_executable(${target_name} ${poc_cpp}) diff --git a/release/.gitignore b/release/.gitignore new file mode 100644 index 000000000..79274fea8 --- /dev/null +++ b/release/.gitignore @@ -0,0 +1 @@ +memgraph-*.tar.gz diff --git a/release/alpha.dockerfile b/release/alpha.dockerfile deleted file mode 100644 index 068ca8df2..000000000 --- a/release/alpha.dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM ubuntu:16.04 -# FROM ubuntu 16.04 # 130MB -# FROM phusion/baseimage # 220MB -# FROM debian:jessie-slim # doesn't work because CXXABI_1.3.9 & GLIBCXX_3.4.21 not found -# FROM debian:jessie # doesn't work because CXXABI_1.3.9 & GLIBCXX_3.4.21 not found - -ENV MEMGRAPH_CONFIG /memgraph/config/memgraph.conf -ARG build_name -RUN mkdir -p /var/lib/memgraph - -COPY ${build_name} /memgraph - -WORKDIR /memgraph - -ENTRYPOINT ["./memgraph"] -CMD [""] diff --git a/release/build_compiler b/release/build_compiler deleted file mode 100755 index e9d7eaa79..000000000 --- a/release/build_compiler +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -# Initial version of script that is going to be used for release builds. - -echo "Memgraph Release Building..." - -if [[ $EUID -eq 0 ]]; then - echo "This script must NOT be run as root!" 1>&2 - exit 1 -fi - -# compile memgraph -cd ../build -rm -rf ./* -cmake -DCMAKE_BUILD_TYPE:String=debug .. -make -j8 -make copy_hardcoded_queries - -# get the most recent version of memgraph exe -exe_name=`ls -t memgraph_* | head -1` - -# create dst directory -mkdir -p ../release/${exe_name} - -# copy all relevant files -cp ${exe_name} ../release/${exe_name}/memgraph -cp libmemgraph_pic.a ../release/${exe_name}/libmemgraph_pic.a -rm -rf ../release/${exe_name}/include -cp -r include ../release/${exe_name}/include -cp -r template ../release/${exe_name}/template -cp -r ../config ../release/${exe_name}/config -cp -r ../libs ../release/${exe_name}/libs - -# copy the hardcoded query plan -# TODO: minimise the header files -cp -r compiled ../release/${exe_name}/ - -echo "Memgraph Release Building DONE" diff --git a/release/build_interpreter b/release/build_interpreter deleted file mode 100755 index d49e2f2fe..000000000 --- a/release/build_interpreter +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/bash - -# Initial version of script that is going to be used for release builds. -# Build & package (collect all required files in a folder). - -function print_help () { - echo "Usage: $0 [OPTION] --version MAJOR.MINOR.PATCH" - echo "Optional arguments:" - echo -e " -h|--help Print help." - echo -e " --skip-compile Skip compilation process." - echo -e " --build-type CMAKE_BUILD_TYPE options are: Debug|Release|RelWithDebInfo|MinSizeRel|Coverage|None (default is Debug)." - echo -e " --config-file Memgraph config file name (default is testing.conf)" -} - -if [[ $EUID -eq 0 ]]; then - echo "This script must NOT be run as root!" 1>&2 - exit 1 -fi - -release_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -project_dir="${release_dir}/.." - -skip_compile=false -build_type="Debug" -config_file="alpha.conf" -version="" -while [[ $# -gt 0 ]] -do - case $1 in - -h|--help) - print_help - exit 1 - ;; - --skip-compile) - skip_compile=true - ;; - --build-type) - build_type=$2 - shift - ;; - --config-file) - config_file=$2 - shift - ;; - --version) - version=$2 - shift - ;; - *) - # unknown option - ;; - esac - shift # past argument or value -done - -if [[ ! ${version} =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo -e "Something is wrong with your version number. Semantic version number is required (MAJOR.MINOR.PATCH).\n" - print_help - exit 1 -fi - -# TODO: Somehow check the correct value. One solution would be to create -# a file with the current version number value. It's not required for now. - -echo "Memgraph Release Building (${version})" - -echo "Skip compile: ${skip_compile}" - -if [[ "${skip_compile}" == false ]]; then - # init (download libraries) - cd ${project_dir} - ./init - - # compile memgraph - cd ${project_dir}/build - rm -rf ./* - cmake -DCMAKE_BUILD_TYPE:String=${build_type} .. - make -j8 -fi - -# get the most recent version of memgraph exe -cd ${project_dir}/build -exe_name=`ls -t memgraph_* | head -1` -release_folder=${release_dir}/${exe_name} - -# extract only required files -# create dst directory -cd ${release_dir} -mkdir -p ${release_folder}/config -echo "Full build name: ${exe_name}" > ${release_folder}/build.info -echo "${version}" > ${release_folder}/VERSION -# copy binary & config -cp ${project_dir}/build/${exe_name} ${release_folder}/memgraph -cp ${project_dir}/config/${config_file} ${release_folder}/config/memgraph.conf - -echo "Memgraph Build ${exe_name} DONE" diff --git a/release/community.dockerfile b/release/community.dockerfile new file mode 100644 index 000000000..c30d7e5bd --- /dev/null +++ b/release/community.dockerfile @@ -0,0 +1,28 @@ +FROM debian:stretch +# FROM debian:stretch # 104MB +# FROM ubuntu 16.04 # 130MB +# FROM phusion/baseimage # 220MB + +ARG build_name + +COPY ${build_name} / + +# Setup memgraph user and group +RUN groupadd -r memgraph +RUN useradd -lrm -g memgraph memgraph +RUN chown -R memgraph:memgraph /var/log/memgraph +RUN chown -R memgraph:memgraph /var/lib/memgraph + +# Memgraph listens for Bolt Protocol on this port by default. +EXPOSE 7687 +# Snapshots and logging volumes +VOLUME /var/log/memgraph +VOLUME /var/lib/memgraph +# Configuration volume +VOLUME /etc/memgraph + +USER memgraph +WORKDIR /home/memgraph + +ENTRYPOINT ["memgraph"] +CMD [""] diff --git a/release/package_deploy b/release/package_deploy deleted file mode 100755 index ab9dc2abc..000000000 --- a/release/package_deploy +++ /dev/null @@ -1,126 +0,0 @@ -#!/bin/bash - -# Build, Package (docker image) & Deploy Memgraph - -function print_help () { - echo "Usage: $0 [OPTION] --version MAJOR.MINOR.PATCH" - echo "Optional arguments:" - echo -e " -h|--help Print help." - echo -e " --skip-compile Skip compilation process." - echo -e " --skip-deploy Skip deployment process." - echo -e " --docker-image-name Custom docker image name, otherwise the image name will be the same as the package name." - echo -e " -s|--server Deployment server address. -|" - echo -e " -u|--user Deployment server user. -| -> Required if deployment isn't skipped." - echo -e " -k|--key Deployment server SSH key. -|" -} - -working_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -project_dir="${working_dir}/.." - -# argument parsing -required_args_no=0 -skip_compile=false -skip_deploy=false -version=0 -docker_image_name="" -while [[ $# -gt 0 ]] -do - case $1 in - -h|--help) - print_help - exit -1 - ;; - -s|--server) - deploy_server="$2" - required_args_no=$((required_args_no+1)) - shift # past argument - ;; - -u|--user) - deploy_user="$2" - required_args_no=$((required_args_no+1)) - shift # past argument - ;; - -k|--key) - deploy_key="$2" - required_args_no=$((required_args_no+1)) - shift # past argument - ;; - --skip-compile) - skip_compile=true - ;; - --skip-deploy) - skip_deploy=true - ;; - --docker-image-name) - docker_image_name="$2" - shift - ;; - --version) - version=$2 - required_args_no=$((required_args_no+1)) - shift - ;; - *) - # unknown option - ;; - esac - shift # past argument or value -done - -# arguments validation -# version validation (semantic versioning) -if [[ ! ${version} =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo -e "Something is wrong with your version number. Semantic version number is required (MAJOR.MINOR.PATCH).\n" - print_help - exit 1 -fi -# validate --skip-deploy, --version, --server, --user, --key -if [[ "${skip_deploy}" == false ]]; then - if [[ ${required_args_no} -ne 4 ]]; then - print_help - exit 1 - fi -else # if deploy is skipped server, user and key are not required - if [[ ${required_args_no} -ne 1 ]]; then - print_help - exit 1 - fi -fi - -echo "Skip compile: ${skip_compile}" -echo "Skip deploy: ${skip_deploy}" -if [[ "${skip_deploy}" == false ]]; then - echo "Deploy server: ${deploy_server}" - echo "Deploy user: ${deploy_user}" - echo "Deploy key: ${deploy_key}" -fi - -## build binary -if [[ "${skip_compile}" == true ]]; then - ${working_dir}/build_interpreter --skip-compile --version ${version} -else - ${working_dir}/build_interpreter --build-type Release --version ${version} -fi - -## build package (docker image) -cd ${working_dir} -package_name=`ls -t -d memgraph_*/ | head -1 | sed 's/.$//'` -# for some reason docker image has to be lowercase string -# and because our package name is based on the cmake build type -# string (which can be camel case) the package name has to be transformed -if [[ "${docker_image_name}" == "" ]] ; then - docker_image_name=$(echo "${package_name}"| tr '[:upper:]' '[:lower:]') -fi -docker build -t ${docker_image_name} -f ${working_dir}/alpha.dockerfile --build-arg build_name=${package_name} . -docker save ${docker_image_name} > ${docker_image_name}.tar.gz - -if [[ "${skip_deploy}" == false ]]; then - ## deploy - # copy package - scp -i ${deploy_key} ${docker_image_name}.tar.gz ${deploy_user}@${deploy_server}:/home/${deploy_user} - # load package - ssh -i ${deploy_key} ${deploy_user}@${deploy_server} docker load -i /home/${deploy_user}/${docker_image_name}.tar.gz - # spin up the instance - public_port=$(echo ${package_name} | grep -o "memgraph_[0-9]*_" | sed 's/[^0-9]*//g') - ssh -i ${deploy_key} ${deploy_user}@${deploy_server} docker run -d --name ${docker_image_name} -p ${public_port}:7687 ${docker_image_name} -fi diff --git a/release/package_docker b/release/package_docker new file mode 100755 index 000000000..04a5be372 --- /dev/null +++ b/release/package_docker @@ -0,0 +1,40 @@ +#!/bin/bash -e + +# Build and Package (docker image) Memgraph + +function print_help () { + echo "Usage: $0 BINARY_PACKAGE.tar.gz" + echo "Optional arguments:" + echo -e " -h|--help Print help." +} + +working_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +project_dir="${working_dir}/.." + +if [[ $# -ne 1 || "$1" == "-h" || "$1" == "--help" ]]; then + print_help + exit 1 +fi + +if [[ ! -f "$1" ]]; then + echo "File '$1' does not exist!" + exit 1 +fi + +tar_release=`realpath "$1"` +package_name=`echo $(basename $1) | sed 's/.tar.gz//'` + +cd ${working_dir} + +# Unpack the release package. +echo "Unpacking '$1' to '${working_dir}/${package_name}'" +tar xf ${tar_release} +version=`echo ${package_name} | sed 's/.*-\(.*\)-.*/\1/'` +image_name="memgraph:${version}" +# Build docker image. +docker build -t ${image_name} -f ${working_dir}/community.dockerfile --build-arg build_name=${package_name} . +docker save ${image_name} > ${package_name}-docker.tar.gz +# Remove unpacked package. +echo "Removing '${working_dir}/${package_name}'" +rm -rf ${package_name} +echo "Built Docker imate at '${working_dir}/${package_name}-docker.tar.gz'" diff --git a/src/copy_hardcoded_queries.cpp b/src/copy_hardcoded_queries.cpp deleted file mode 100644 index aa10d8629..000000000 --- a/src/copy_hardcoded_queries.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// -// Created by buda on 27/02/17. -// - -#include <experimental/filesystem> -namespace fs = std::experimental::filesystem; - -#include <glog/logging.h> -#include "gflags/gflags.h" - -#include "query/frontend/stripped.hpp" -#include "utils/exceptions.hpp" -#include "utils/file.hpp" -#include "utils/string.hpp" - -/** - * Reads a query from the file specified by the path argument. - * The first line of a query should start with "// Query: ". Query can be - * in more than one line but every line has to start with "//". - * - * @param path to the query file. - * @return query as a string. - */ - -DEFINE_string(src, "tests/integration/hardcoded_queries", - "Path to sources of hardcoded queries."); -DEFINE_string(dst, "build/compiled/hardcode", - "Destination path of hardcoded queries"); - -std::string ExtractQuery(const fs::path &path) { - auto comment_mark = std::string("// "); - auto query_mark = comment_mark + std::string("Query: "); - auto lines = utils::ReadLines(path); - // find the line with a query (the query can be split across multiple - // lines) - for (int i = 0; i < static_cast<int>(lines.size()); ++i) { - // find query in the line - auto &line = lines[i]; - auto pos = line.find(query_mark); - // if query doesn't exist pass - if (pos == std::string::npos) continue; - auto query = utils::Trim(line.substr(pos + query_mark.size())); - while (i + 1 < static_cast<int>(lines.size()) && - lines[i + 1].find(comment_mark) != std::string::npos) { - query += lines[i + 1].substr(lines[i + 1].find(comment_mark) + - comment_mark.length()); - ++i; - } - return query; - } - - throw utils::BasicException("Unable to find query!"); -} - -int main(int argc, char **argv) { - gflags::ParseCommandLineFlags(&argc, &argv, false); - google::InitGoogleLogging(argv[0]); - - auto src_path = FLAGS_src; - LOG(INFO) << "Src path is: " << src_path; - permanent_assert(fs::exists(src_path), "src folder must exist"); - - auto dst_path = FLAGS_dst; - LOG(INFO) << "Dst path is: " << dst_path; - fs::create_directories(dst_path); - - auto src_files = utils::LoadFilePaths(src_path, "cpp"); - - for (auto &src_file : src_files) { - auto query = ExtractQuery(src_file); - auto query_hash = query::StrippedQuery(query).hash(); - auto dst_file = dst_path / fs::path(std::to_string(query_hash) + ".cpp"); - fs::copy(src_file, dst_file, fs::copy_options::overwrite_existing); - LOG(INFO) << src_file << "- {(copy) -> " << dst_file; - } - - auto hpp_files = utils::LoadFilePaths(src_path, "hpp"); - for (auto &hpp_file : hpp_files) { - fs::copy(hpp_file, dst_path / hpp_file.filename(), - fs::copy_options::overwrite_existing); - } - - return 0; -} diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a9855814f..74aa58c2a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.1) -project(${project_name}_tests) +project(memgraph_tests) enable_testing() diff --git a/tests/benchmark/CMakeLists.txt b/tests/benchmark/CMakeLists.txt index 40514d79a..86810d8b4 100644 --- a/tests/benchmark/CMakeLists.txt +++ b/tests/benchmark/CMakeLists.txt @@ -14,8 +14,8 @@ foreach(test_cpp ${test_type_cpps}) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${test_cpp} NAME_WE) - # set target name in format {project_name}__{test_type}__{exec_name} - set(target_name ${project_name}__${test_type}__${exec_name}) + # set target name in format {PROJECT_NAME}__{test_type}__{exec_name} + set(target_name ${PROJECT_NAME}__${test_type}__${exec_name}) # build exec file add_executable(${target_name} ${test_cpp}) diff --git a/tests/concurrent/CMakeLists.txt b/tests/concurrent/CMakeLists.txt index cc8eceb0a..d4a097f7c 100644 --- a/tests/concurrent/CMakeLists.txt +++ b/tests/concurrent/CMakeLists.txt @@ -13,8 +13,7 @@ foreach(test_cpp ${test_type_cpps}) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${test_cpp} NAME_WE) - # set target name in format {project_name}__{test_type}__{exec_name} - set(target_name ${project_name}__${test_type}__${exec_name}) + set(target_name memgraph__${test_type}__${exec_name}) # build exec file add_executable(${target_name} ${test_cpp}) diff --git a/tests/macro_benchmark/CMakeLists.txt b/tests/macro_benchmark/CMakeLists.txt index 2ec5a9a1a..f338d4f18 100644 --- a/tests/macro_benchmark/CMakeLists.txt +++ b/tests/macro_benchmark/CMakeLists.txt @@ -11,7 +11,7 @@ message(STATUS "Available ${test_type} cpp files are: ${test_type_cpps}") set(postgres_dir ${libs_dir}/postgresql) # add target that depends on all other targets -set(all_targets_target ${project_name}__${test_type}) +set(all_targets_target memgraph__${test_type}) add_custom_target(${all_targets_target}) # for each cpp file build binary and register test @@ -20,8 +20,7 @@ foreach(test_cpp ${test_type_cpps}) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${test_cpp} NAME_WE) - # set target name in format {project_name}__{test_type}__{exec_name} - set(target_name ${project_name}__${test_type}__${exec_name}) + set(target_name memgraph__${test_type}__${exec_name}) # build exec file add_executable(${target_name} ${test_cpp}) diff --git a/tests/manual/CMakeLists.txt b/tests/manual/CMakeLists.txt index 7fcfea517..8d50368c3 100644 --- a/tests/manual/CMakeLists.txt +++ b/tests/manual/CMakeLists.txt @@ -11,8 +11,7 @@ foreach(test_cpp ${test_type_cpps}) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${test_cpp} NAME_WE) - # set target name in format {project_name}__{test_type}__{exec_name} - set(target_name ${project_name}__${test_type}__${exec_name}) + set(target_name memgraph__${test_type}__${exec_name}) # build exec file add_executable(${target_name} ${test_cpp}) diff --git a/tests/property_based/CMakeLists.txt b/tests/property_based/CMakeLists.txt index da676cefb..d04567350 100644 --- a/tests/property_based/CMakeLists.txt +++ b/tests/property_based/CMakeLists.txt @@ -11,8 +11,7 @@ foreach(test_cpp ${test_type_cpps}) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${test_cpp} NAME_WE) - # set target name in format {project_name}__{test_type}__{exec_name} - set(target_name ${project_name}__${test_type}__${exec_name}) + set(target_name memgraph__${test_type}__${exec_name}) # build exec file add_executable(${target_name} ${test_cpp}) diff --git a/tests/qa/.gitignore b/tests/qa/.gitignore index 388af07eb..1521a99a0 100644 --- a/tests/qa/.gitignore +++ b/tests/qa/.gitignore @@ -5,3 +5,4 @@ *.pyc ve3/ .quality_assurance_status +latency/memgraph diff --git a/tests/stress/CMakeLists.txt b/tests/stress/CMakeLists.txt index b402afebd..a41dbe2ec 100644 --- a/tests/stress/CMakeLists.txt +++ b/tests/stress/CMakeLists.txt @@ -8,7 +8,7 @@ file(GLOB_RECURSE test_type_cpps *.cpp) message(STATUS "Available ${test_type} cpp files are: ${test_type_cpps}") # add target that depends on all other targets -set(all_targets_target ${project_name}__${test_type}) +set(all_targets_target memgraph__${test_type}) add_custom_target(${all_targets_target}) # for each cpp file build binary and register test @@ -17,8 +17,7 @@ foreach(test_cpp ${test_type_cpps}) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${test_cpp} NAME_WE) - # set target name in format {project_name}__{test_type}__{exec_name} - set(target_name ${project_name}__${test_type}__${exec_name}) + set(target_name memgraph__${test_type}__${exec_name}) # build exec file add_executable(${target_name} ${test_cpp}) diff --git a/tests/unit/CMakeLists.txt b/tests/unit/CMakeLists.txt index 11628d5a6..44e923b63 100644 --- a/tests/unit/CMakeLists.txt +++ b/tests/unit/CMakeLists.txt @@ -11,8 +11,7 @@ foreach(test_cpp ${test_type_cpps}) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${test_cpp} NAME_WE) - # set target name in format {project_name}__{test_type}__{exec_name} - set(target_name ${project_name}__${test_type}__${exec_name}) + set(target_name memgraph__${test_type}__${exec_name}) # build exec file add_executable(${target_name} ${test_cpp}) diff --git a/tools/apollo/build_diff b/tools/apollo/build_diff index 1bafc273a..58d1c1657 100644 --- a/tools/apollo/build_diff +++ b/tools/apollo/build_diff @@ -30,7 +30,7 @@ TIMEOUT=600 ./init cd build cmake -DCMAKE_BUILD_TYPE=release .. -TIMEOUT=1000 make -j$THREADS memgraph_link_target parent__macro_benchmark +TIMEOUT=1000 make -j$THREADS memgraph_link_target memgraph__macro_benchmark cd ../../memgraph/tools/apollo diff --git a/tools/apollo/build_release b/tools/apollo/build_release index 9edcdb6cc..276f6804b 100644 --- a/tools/apollo/build_release +++ b/tools/apollo/build_release @@ -11,6 +11,8 @@ bash -c "doxygen Doxyfile >/dev/null 2>/dev/null" cd build cmake -DCMAKE_BUILD_TYPE=Release -DUSE_READLINE=OFF .. TIMEOUT=1000 make -j$THREADS +# Create a binary package (which can then be used for Docker image). +cpack -D CPACK_SET_DESTDIR=ON -G TGZ cd ../tools