memgraph/release/build_interpreter
Marko Budiselic 9ed4102897 Release preparation.
Summary: Alpha config fix. Docker volume support.

Reviewers: teon.banek, dgleich

Reviewed By: teon.banek, dgleich

Subscribers: pullbot, buda

Differential Revision: https://phabricator.memgraph.io/D484
2017-06-16 15:16:11 +02:00

97 lines
2.5 KiB
Bash
Executable File

#!/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 -DLOG_NO_STDOUT=ON -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"