Skip to content

Commit f5b4f9b

Browse files
committed
Add jenkins test srcipt for unit test
1 parent d0f2282 commit f5b4f9b

File tree

1 file changed

+173
-0
lines changed

1 file changed

+173
-0
lines changed
Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
#!/bin/bash
2+
3+
SCRIPTNAME=$(basename $0)
4+
ENVINFOFILE="environment_info.txt"
5+
6+
while [ $# -gt 0 ]; do
7+
case "$1" in
8+
-node_basedir)
9+
if [ "$2" = "" ]; then
10+
echo "$SCRIPTNAME: Value missing for -node_basedir"
11+
fi
12+
NODE_BASEDIR=$2
13+
shift
14+
shift
15+
;;
16+
-branch_name)
17+
if [ "$2" = "" ]; then
18+
echo "$SCRIPTNAME: Value missing for -branch_name"
19+
fi
20+
BRANCH_NAME=$2
21+
shift
22+
shift
23+
;;
24+
-java_home)
25+
if [ "$2" = "" ]; then
26+
echo "$SCRIPTNAME: Value missing for -java_home"
27+
fi
28+
export JAVA_HOME=$2
29+
shift
30+
shift
31+
;;
32+
-mvn_home)
33+
if [ "$2" = "" ]; then
34+
echo "$SCRIPTNAME: Value missing for -mvn_home"
35+
fi
36+
export MVN_HOME=$2
37+
shift
38+
shift
39+
;;
40+
-task_name)
41+
if [ "$2" = "" ]; then
42+
echo "$SCRIPTNAME: Value missing for -task_name"
43+
fi
44+
TASK_NAME=$2
45+
shift
46+
shift
47+
;;
48+
-jenkins_host)
49+
if [ "$2" = "" ]; then
50+
echo "$SCRIPTNAME: Value missing for -jenkins_host"
51+
fi
52+
JENKINS_HOST=$2
53+
shift
54+
shift
55+
;;
56+
-jenkins_user)
57+
if [ "$2" = "" ]; then
58+
echo "$SCRIPTNAME: Value missing for -jenkins_user"
59+
fi
60+
JENKINS_USER=$2
61+
shift
62+
shift
63+
;;
64+
-test_hosts)
65+
if [ "$2" = "" ]; then
66+
echo "$SCRIPTNAME: Value missing for -test_hosts"
67+
fi
68+
TEST_HOSTS=$2
69+
shift
70+
shift
71+
;;
72+
-test_args)
73+
if [ "$2" = "" ]; then
74+
echo "$SCRIPTNAME: Value missing for -test_args"
75+
fi
76+
TEST_ARGS=$2
77+
shift
78+
shift
79+
;;
80+
*)
81+
echo "$SCRIPTNAME: Unknown option: $1"
82+
exit 1
83+
;;
84+
esac
85+
done
86+
87+
if [ "$TASK_NAME" = "" ]; then
88+
TASK_NAME="current test"
89+
fi
90+
91+
#if [ "$TASK_NAME" = "kv_unit_erasure" ]; then
92+
# TEST_ARGS="-Dtest.je.eraser.props=je.env.runEraser=true;\je.erase.period=1\ s;"
93+
#fi
94+
95+
if [ "$BRANCH_NAME" = "" ]; then
96+
BRANCH_NAME="main"
97+
fi
98+
99+
if [ "$NODE_BASEDIR" = "" ]; then
100+
NODE_BASEDIR="/scratch/tests"
101+
fi
102+
103+
if [ "$JAVA_HOME" == "" ]; then
104+
echo "No environment variable JAVA_HOME. Environment JAVA_HOME must be set."
105+
exit 1
106+
fi
107+
108+
if [ "$MVN_HOME" == "" ]; then
109+
echo "No environment variable MVN_HOME. Environment MVN_HOME must be set."
110+
exit 1
111+
fi
112+
113+
export PATH=$JAVA_HOME/bin:$MVN_HOME/bin:$PATH
114+
115+
echo "Task ${TASK_NAME} is running..."
116+
117+
#ROOT_DIR=`cd ../../../../../ && pwd`
118+
ROOT_DIR=${NODE_BASEDIR}/workspace/${TASK_NAME}
119+
LOG_DIR=${ROOT_DIR}/../../log_archive
120+
KV_DIR=${ROOT_DIR}/kv
121+
122+
cd ${KV_DIR} && git checkout ${BRANCH_NAME}
123+
124+
KV_REV_ID=$(git describe --abbrev=12 --always --dirty=+)
125+
126+
echo ""
127+
echo "=================================================="
128+
echo ""
129+
echo "Revision id: ${KV_REV_ID}"
130+
cd ${ROOT_DIR}/kv && git show ${KV_REV_ID} >./jenkins_changeset.txt
131+
132+
JAVA_VERN=$(java -version 2>&1)
133+
MVN_VERSION=$(mvn -version)
134+
KV_VERSION=$(cd ${KV_DIR} && git log -n 1 ${KV_REV_ID})
135+
136+
echo "Java: ${JAVA_VERN}"
137+
echo "Maven: $MVN_VERSION"
138+
echo "Environment: JAVA_HOME=$JAVA_HOME"
139+
echo " MVN_HOME=$MVN_HOME"
140+
echo "$KV_VERSION" | tee -a ${ROOT_DIR}/kv/${ENVINFOFILE}
141+
echo "==================================================="
142+
echo "" | tee -a ${ROOT_DIR}/kv/${ENVINFOFILE}
143+
144+
# The test.filterOut=" " property is required to run query tests in
145+
# kvtest/kvquery-IT/src/main/resources/cases/idc_xxx/ directories, which are excluded by default
146+
cd ${KV_DIR} && mvn clean && mvn -fn -PIT verify -Dtest.filterOut=" " ${TEST_ARGS}
147+
148+
JENKINS_MASTER_USER=opc
149+
JENKINS_MASTER_BASEDIR=/block1/opc/.jenkins/jobs
150+
if [ "$JENKINS_HOST" != "" ]; then
151+
152+
BUILDID=$(ssh -l ${JENKINS_MASTER_USER} ${JENKINS_HOST} "cat ${JENKINS_MASTER_BASEDIR}/${TASK_NAME}/nextBuildNumber")
153+
BUILDID=$(expr $BUILDID - 1)
154+
155+
LOGLOCATION=${LOG_DIR}/${TASK_NAME}/$BUILDID
156+
mkdir -p $LOGLOCATION
157+
HOST_NAME=$(hostname -f)
158+
echo "Host: ${HOST_NAME}" >>${ROOT_DIR}/kv/${ENVINFOFILE}
159+
cd $LOGLOCATION/..
160+
OLDEST_BUILD=$(ls | sort -n | head -1)
161+
if [ $(($BUILDID - $OLDEST_BUILD)) -gt 30 ]; then
162+
rm -rf ${OLDEST_BUILD}
163+
fi
164+
cd $LOGLOCATION
165+
echo "Directory: $(pwd)" >>${ROOT_DIR}/kv/${ENVINFOFILE}
166+
167+
cp -r ${ROOT_DIR}/kv $LOGLOCATION
168+
169+
ssh ${JENKINS_MASTER_USER}@${JENKINS_HOST} "mkdir -p ${JENKINS_MASTER_BASEDIR}/${TASK_NAME}/workspace/"
170+
cd ${ROOT_DIR}/kv/ && scp jenkins_changeset.txt ${ENVINFOFILE} ${JENKINS_MASTER_USER}@${JENKINS_HOST}:${JENKINS_MASTER_BASEDIR}/${TASK_NAME}/workspace/
171+
cd ${KV_DIR} && scp -r ./kvtest/*/target/failsafe-reports ${JENKINS_MASTER_USER}@${JENKINS_HOST}:${JENKINS_MASTER_BASEDIR}/${TASK_NAME}/workspace/
172+
173+
fi

0 commit comments

Comments
 (0)