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
|
||||
*.dSYM/
|
||||
*.o
|
||||
*.out
|
||||
*.pyc
|
||||
*.session.yaml
|
||||
tags
|
||||
*.so
|
||||
*.swo
|
||||
*.swp
|
||||
*~
|
||||
.DS_Store
|
||||
.gdb_history
|
||||
.idea
|
||||
.ycm_extra_conf.pyc
|
||||
Testing/
|
||||
ve/
|
||||
ve3/
|
||||
release/memgraph_*
|
||||
release/libs/
|
||||
release/barrier/
|
||||
release/barrier_*
|
||||
build/
|
||||
cmake-build-*
|
||||
.idea
|
||||
cmake/DownloadProject/
|
||||
dist/
|
||||
memgraph
|
||||
release/barrier/
|
||||
release/barrier_*
|
||||
release/config/
|
||||
release/libs/
|
||||
release/memgraph_*
|
||||
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.
|
||||
|
||||
# NOTE: do not run this script as a super user
|
||||
|
||||
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 ./*
|
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