Revert "CI: Rename global-settings to mvn-glob..."
[ci-management.git] / jjb / shell / seba_on_arm.sh
1 #!/bin/bash
2 # SPDX-license-identifier: Apache-2.0
3 ##############################################################################
4 # Copyright (c) 2019 Enea Software AB and others.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
10
11 export TERM="vt220"
12 set -ex
13
14 echo "JOB_NAME=${JOB_NAME}"
15
16 # Run either ssh or scp on the K8S master
17 run_on_k8s_master () {
18   case "${1}" in
19     ssh)
20       _c="${1}"
21       shift
22       _s=" "
23       ;;
24     scp)
25       _c="${1} -r"
26       shift
27       _s=":${1}"
28       shift
29       ;;
30     *)
31       echo "Use either ssh or scp to run on K8S master"
32       exit 1
33       ;;
34   esac
35
36   if [ -n "${K8S_SSH_PASSWORD}" ]
37   then
38     eval sshpass -p "${K8S_SSH_PASSWORD}" "${_c}" \
39          -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
40          "${K8S_SSH_USER}@${K8S_MASTER_IP}${_s}" "$@"
41   elif [ -n "${K8S_SSH_KEY}" ]
42   then
43     eval "${_c}" -i "${K8S_SSH_KEY}" \
44          -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
45          "${K8S_SSH_USER}@${K8S_MASTER_IP}${_s}" "$@"
46   else
47     echo "Neither K8S_SSH_PASSWORD nor K8S_SSH_KEY are set"
48     exit 1
49   fi
50 }
51
52 case "${JOB_NAME}" in
53   *fuel*)
54     K8S_MASTER_IP=$(docker exec fuel cat /etc/hosts | grep iec01 \
55                     | awk '{print $1}')
56     # On Fuel deployements the K8s ssh key is the one used by the deploy job
57     K8S_SSH_KEY=${SSH_KEY}
58     IEC_DIR="/var/lib/akraino/iec"
59     KUBE_DIR="~${K8S_SSH_USER}/.kube"
60     ;;
61   *compass*)
62     # K8S_{MASTER_IP,SSH_USER,SSH_PASSWORD} are already set by job params
63     IEC_DIR="/${K8S_SSH_USER}/iec"
64     KUBE_DIR="~${K8S_SSH_USER}/.kube"
65     ;;
66   *rec*)
67     # CLUSTER_{MASTER_IP,SSH_USER,SSH_PASSWORD} are already set by job params
68     K8S_MASTER_IP=${CLUSTER_MASTER_IP}
69     K8S_SSH_USER=${CLUSTER_SSH_USER}
70     K8S_SSH_PASSWORD=${CLUSTER_SSH_PASSWORD}
71     IEC_DIR="/var/lib/akraino/iec"
72     KUBE_DIR="~${K8S_SSH_USER}/.kube"
73     UPSTREAM_PROJECT='rec'
74     # The REC cluster do not have a clone of the iec repo
75     IEC_REPO="https://gerrit.akraino.org/r/iec.git"
76     IEC_DIR="~${CLUSTER_SSH_USER}/iec"
77     IEC_CLONE_CMD="'if ! [ -d "$IEC_DIR" ];\
78                     then\
79                       mkdir -p $IEC_DIR;\
80                       git clone $IEC_REPO $IEC_DIR;
81                     fi'"
82     run_on_k8s_master ssh "${IEC_CLONE_CMD}"
83     ;;
84   *)
85     echo "Cannot determine installer from ${JOB_NAME}"
86     exit 1
87     ;;
88 esac
89
90 if [ -z "$K8S_SSH_USER" ]
91 then
92   echo "K8S_SSH_USER not set, cannot ssh to K8S master, aborting"
93   exit 1
94 fi
95
96 export K8S_MASTER_IP UPSTREAM_PROJECT="${UPSTREAM_PROJECT:-${PROJECT}}"
97
98
99 case "${JOB_NAME}" in
100   *-install-seba_on_arm*)
101     INSTALL_CMD="'cd ${IEC_DIR}/src/use_cases/seba_on_arm/install; K8S_MASTER_IP=${K8S_MASTER_IP} ./install.sh ${UPSTREAM_PROJECT}'"
102     run_on_k8s_master ssh "${INSTALL_CMD}"
103     ;;
104   *-test-seba_on_arm*)
105
106     case "${PON_TYPE}" in
107       *ponsim*)
108       ;;
109       *)
110         echo "Unknown PON_TYPE ${PON_TYPE}"
111         exit
112       ;;
113     esac
114
115     # After the installation, copy the .kube dir from the K8S master
116     cd "${WORKSPACE}" || exit 1
117     run_on_k8s_master scp "${KUBE_DIR}" "${WORKSPACE}"
118
119     SEBA_TEST_DIR="src/use_cases/seba_on_arm/test"
120     TEST_CMD="${SEBA_TEST_DIR}/${PON_TYPE}/test.sh ${UPSTREAM_PROJECT}"
121     echo "Issuing command"
122     echo "${TEST_CMD}"
123
124     eval "${TEST_CMD}"
125     ;;
126   *)
127     echo "Cannot determine what to do for seba_on_arm from ${JOB_NAME}"
128     exit 1
129     ;;
130 esac
131
132 exit 0