9ed4102897
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
97 lines
2.5 KiB
Bash
Executable File
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"
|