-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgap
115 lines (106 loc) · 3.52 KB
/
gap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/env bash
APP_NAME=vacuous-cream
SERVICE_NAME=vacuous-cream
JAR_NAME=ROOT.war
#OPENSHIFT_CONSOLE_URL=Set to your OpenShift cluster's Console URL
SCRIPT_DIR=$(cd "$(dirname "$BASH_SOURCE")" ; pwd -P)
OPENSHIFTIO_DIR=${SCRIPT_DIR}/.openshiftio
SOURCE_DIR=${SCRIPT_DIR}
if [[ ! -z "" ]]; then
SOURCE_DIR=${SOURCE_DIR}/..
SUB_DIR=//deployments
else
SUB_DIR=/deployments
fi
function do_deploy() {
PARAMS=""
REPO_URL=$(git config --get remote.origin.url || echo "")
if [[ ! -z "${REPO_URL}" ]]; then
PARAMS="$PARAMS -p=SOURCE_REPOSITORY_URL=${REPO_URL}"
fi
if [[ ! -z "${OPENSHIFT_CONSOLE_URL}" ]]; then
PARAMS="$PARAMS -p=OPENSHIFT_CONSOLE_URL=${OPENSHIFT_CONSOLE_URL}"
fi
if [[ -f ${OPENSHIFTIO_DIR}/application.yaml ]]; then
oc process -f ${OPENSHIFTIO_DIR}/application.yaml --ignore-unknown-parameters ${PARAMS} | oc apply -f -
fi
if [[ -f ${OPENSHIFTIO_DIR}/service.welcome.yaml ]]; then
oc process -f ${OPENSHIFTIO_DIR}/service.welcome.yaml --ignore-unknown-parameters ${PARAMS} | oc apply -f -
fi
}
function do_build() {
mvn package
}
function do_clean() {
mvn clean
}
function do_push() {
BINARY=${SCRIPT_DIR}/target/${JAR_NAME}
if [[ "$1" == "--binary" || "$1" == "-b" ]]; then
shift
FROM=${SCRIPT_DIR}/target/_oc_build_tmp_
mkdir -p ${FROM}${SUB_DIR}
cp ${BINARY} ${FROM}${SUB_DIR}
oc start-build ${SERVICE_NAME} --from-dir ${FROM} "$@"
rm -rf ${FROM}
elif [[ "$1" == "--source" || "$1" == "-s" ]]; then
shift
oc start-build ${SERVICE_NAME} --from-dir ${SOURCE_DIR} "$@"
elif [[ "$1" == "--git" || "$1" == "-g" ]]; then
shift
oc start-build ${SERVICE_NAME} "$@"
else
if [[ -f ${BINARY} ]]; then
FROM=${SCRIPT_DIR}/target/_oc_build_tmp_
mkdir -p ${FROM}${SUB_DIR}
cp ${BINARY} ${FROM}${SUB_DIR}
oc start-build ${SERVICE_NAME} --from-dir ${FROM} "$@"
rm -rf ${FROM}
else
oc start-build ${SERVICE_NAME} --from-dir ${SOURCE_DIR} "$@"
fi
fi
}
function do_delete() {
oc delete all,secrets -l app=${APP_NAME}
}
while [[ $# > 0 ]]; do
CMD=$1
shift
ARGS=()
while [[ "$1" == -* ]]; do ARGS+=($1); shift; done
case "$CMD" in
"deploy")
do_deploy $ARGS
;;
"build")
do_build $ARGS
;;
"clean")
do_clean $ARGS
;;
"push")
do_push $ARGS
;;
"delete")
do_delete $ARGS
;;
*)
echo "Usage: gap [deploy|build|clean|push|delete] ..."
echo " deploy - Deploys the application to OpenShift"
echo " build - Builds the application from code"
echo " clean - Cleans any build artifacts"
echo " push - Pushes code to the application. By default this will push the pe-compiled"
echo " binary if it exists, otherwise it will push the local sources to be compiled"
echo " on OpenShift. This can be overridden by using one of the following flags:"
echo " -b, --binary - Pushes a pre-compiled binary"
echo " -s, --source - Pushes the sources"
echo " -g, --git - Reverts to using the sources from Git"
echo " delete - Deletes the application from OpenShift"
;;
esac
RES=$?
if [[ $RES > 0 ]]; then
exit $RES
fi
done