Build, Package & Deploy script.
Summary: Build, Packege & Deploy script. Reviewers: teon.banek, mferencevic, mislav.bradac, dgleich Reviewed By: dgleich Subscribers: dgleich, pullbot, buda Differential Revision: https://phabricator.memgraph.io/D397
This commit is contained in:
parent
2005056cd5
commit
fd19f76cba
39
.gitignore
vendored
39
.gitignore
vendored
@ -1,28 +1,29 @@
|
|||||||
.DS_Store
|
|
||||||
.ycm_extra_conf.pyc
|
|
||||||
*.swp
|
|
||||||
*.swo
|
|
||||||
*.out
|
|
||||||
*.so
|
|
||||||
*.o
|
|
||||||
*.dSYM/
|
|
||||||
memgraph
|
|
||||||
*~
|
|
||||||
*.pyc
|
|
||||||
*.breakpoint
|
*.breakpoint
|
||||||
|
*.dSYM/
|
||||||
|
*.o
|
||||||
|
*.out
|
||||||
|
*.pyc
|
||||||
*.session.yaml
|
*.session.yaml
|
||||||
tags
|
*.so
|
||||||
|
*.swo
|
||||||
|
*.swp
|
||||||
|
*~
|
||||||
|
.DS_Store
|
||||||
.gdb_history
|
.gdb_history
|
||||||
|
.idea
|
||||||
|
.ycm_extra_conf.pyc
|
||||||
Testing/
|
Testing/
|
||||||
ve/
|
|
||||||
ve3/
|
|
||||||
release/memgraph_*
|
|
||||||
release/libs/
|
|
||||||
release/barrier/
|
|
||||||
release/barrier_*
|
|
||||||
build/
|
build/
|
||||||
cmake-build-*
|
cmake-build-*
|
||||||
.idea
|
|
||||||
cmake/DownloadProject/
|
cmake/DownloadProject/
|
||||||
dist/
|
dist/
|
||||||
|
memgraph
|
||||||
|
release/barrier/
|
||||||
|
release/barrier_*
|
||||||
|
release/config/
|
||||||
|
release/libs/
|
||||||
|
release/memgraph_*
|
||||||
src/query/frontend/opencypher/generated/
|
src/query/frontend/opencypher/generated/
|
||||||
|
tags
|
||||||
|
ve/
|
||||||
|
ve3/
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Initial version of script that is going to be used for release builds.
|
|
||||||
|
|
||||||
# NOTE: do not run this script as a super user
|
|
||||||
|
|
||||||
echo "Memgraph Release Building..."
|
|
||||||
|
|
||||||
# compile memgraph
|
|
||||||
cd ../build
|
|
||||||
rm -rf ./*
|
|
||||||
cmake -DCMAKE_BUILD_TYPE:String=debug ..
|
|
||||||
make -j8
|
|
||||||
|
|
||||||
# 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 -r ../config ../release/${exe_name}/config
|
|
||||||
|
|
||||||
echo "Memgraph Release Building DONE"
|
|
@ -2,10 +2,13 @@
|
|||||||
|
|
||||||
# Initial version of script that is going to be used for release builds.
|
# Initial version of script that is going to be used for release builds.
|
||||||
|
|
||||||
# NOTE: do not run this script as a super user
|
|
||||||
|
|
||||||
echo "Memgraph Release Building..."
|
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
|
# compile memgraph
|
||||||
cd ../build
|
cd ../build
|
||||||
rm -rf ./*
|
rm -rf ./*
|
66
release/build_interpreter
Executable file
66
release/build_interpreter
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
#!/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 [--skip-compile]"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Memgraph Release Building..."
|
||||||
|
|
||||||
|
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
|
||||||
|
while [[ $# -gt 0 ]]
|
||||||
|
do
|
||||||
|
case $1 in
|
||||||
|
-h|--help)
|
||||||
|
print_help
|
||||||
|
exit -1
|
||||||
|
;;
|
||||||
|
--skip-compile)
|
||||||
|
skip_compile=true
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# unknown option
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift # past argument or value
|
||||||
|
done
|
||||||
|
|
||||||
|
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=debug ..
|
||||||
|
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}
|
||||||
|
echo "Full build name: ${exe_name}" > ${release_folder}/build.info
|
||||||
|
# copy binary & config
|
||||||
|
cp ${project_dir}/build/${exe_name} ${release_folder}/memgraph
|
||||||
|
cp -r ${project_dir}/config ${release_folder}/config
|
||||||
|
|
||||||
|
echo "Memgraph Build ${exe_name} DONE"
|
76
release/package_deploy
Executable file
76
release/package_deploy
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Build, Package (docker image) & Deploy Memgraph
|
||||||
|
|
||||||
|
function print_help () {
|
||||||
|
echo "Usage: $0 [-h|--help] -s|--server deploy_server_domain -u|--user username -k|--key private_user_key [--skip-compile]"
|
||||||
|
}
|
||||||
|
|
||||||
|
working_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
project_dir="${working_dir}/.."
|
||||||
|
|
||||||
|
# argument parsing
|
||||||
|
required_args_no=0
|
||||||
|
skip_compile=false
|
||||||
|
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
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# unknown option
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift # past argument or value
|
||||||
|
done
|
||||||
|
if [[ ${required_args_no} -ne 3 ]]; then
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Deploy server: ${deploy_server}"
|
||||||
|
echo "Deploy user: ${deploy_user}"
|
||||||
|
echo "Deploy key: ${deploy_key}"
|
||||||
|
echo "Skip compile: ${skip_compile}"
|
||||||
|
|
||||||
|
## build binary
|
||||||
|
if [[ "${skip_compile}" == true ]]; then
|
||||||
|
${working_dir}/build_interpreter --skip-compile
|
||||||
|
else
|
||||||
|
${working_dir}/build_interpreter
|
||||||
|
fi
|
||||||
|
|
||||||
|
## build package (docker image)
|
||||||
|
cd ${working_dir}
|
||||||
|
package_name=`ls -t -d memgraph_*/ | head -1 | sed 's/.$//'`
|
||||||
|
docker build -t ${package_name} -f ${working_dir}/alpha_interpreter.dockerfile --build-arg build_name=${package_name} .
|
||||||
|
docker save ${package_name} > ${package_name}.tar.gz
|
||||||
|
|
||||||
|
## deploy
|
||||||
|
# copy package
|
||||||
|
scp -i ${deploy_key} ${package_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}/${package_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 ${package_name} -p ${public_port}:7687 ${package_name}
|
Loading…
Reference in New Issue
Block a user