Skip to content

Commit fadce7e

Browse files
authored
Add shell scripts to run v8o tests in Jenkins (#3940)
* Add shell scripts to run v8o tests in Jenkins
1 parent c7ba8f2 commit fadce7e

File tree

2 files changed

+625
-0
lines changed

2 files changed

+625
-0
lines changed

jenkinsVzScript.sh

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
#!/bin/bash
2+
# Copyright (c) 2023, Oracle and/or its affiliates.
3+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
4+
#
5+
# This script checks for the below required environment variables on Jenkins and runs the integration tests
6+
# APACHE_MAVEN_HOME
7+
# HELM_VERSION
8+
# KUBECTL_VERSION
9+
# KIND_VERSION
10+
# IT_TEST
11+
# WDT_DOWNLOAD_URL
12+
# WIT_DOWNLOAD_URL
13+
# NUMBER_OF_THREADS
14+
# JAVA_HOME
15+
# BASE_IMAGES_REPO
16+
# BASE_IMAGES_REPO_USERNAME
17+
# BASE_IMAGES_REPO_PASSWORD
18+
# BASE_IMAGES_REPO_EMAIL
19+
20+
set -o errexit
21+
set -o pipefail
22+
23+
function checkEnvVars {
24+
local has_errors=false
25+
while [ ! -z "${1}" ]; do
26+
if [ -z "${!1}" ]; then
27+
echo "Error: '${1}' env variable is not set"
28+
has_errors=true
29+
else
30+
if [ "${1/PASSWORD//}" = "${1}" ]; then
31+
echo "Info: env var ${1}='${!1}'"
32+
else
33+
echo "Info: env var ${1}='***'"
34+
fi
35+
fi
36+
shift
37+
done
38+
if [ ! "$has_errors" = "false" ]; then
39+
echo "Error: Missing env vars, exiting."
40+
exit 1
41+
fi
42+
}
43+
function ver { printf %02d%02d%02d%02d%02d $(echo "$1" | tr '.' ' '); }
44+
function checkJavaVersion {
45+
java_version=`java -version 2>&1 >/dev/null | grep 'java version' | awk '{print $3}'`
46+
echo "Info: java version ${java_version}"
47+
if [ $(ver $java_version) -lt $(ver "11.0.10") ]; then
48+
echo "Error: Java version should be 11.0.10 or higher"
49+
exit 1
50+
fi
51+
}
52+
53+
# Record start time in a format appropriate for journalctl --since
54+
start_time=$(date +"%Y-%m-%d %H:%M:%S")
55+
56+
echo "WORKSPACE ${WORKSPACE}"
57+
58+
checkEnvVars \
59+
APACHE_MAVEN_HOME \
60+
HELM_VERSION \
61+
KUBECTL_VERSION \
62+
KIND_VERSION \
63+
IT_TEST \
64+
WDT_DOWNLOAD_URL \
65+
WIT_DOWNLOAD_URL \
66+
NUMBER_OF_THREADS \
67+
JAVA_HOME \
68+
BASE_IMAGES_REPO \
69+
BASE_IMAGES_REPO_USERNAME \
70+
BASE_IMAGES_REPO_PASSWORD \
71+
BASE_IMAGES_REPO_EMAIL
72+
73+
74+
mkdir -p ${WORKSPACE}/bin
75+
76+
export PATH=${JAVA_HOME}/bin:${APACHE_MAVEN_HOME}/bin:${WORKSPACE}/bin:$PATH
77+
78+
which java
79+
java -version
80+
checkJavaVersion
81+
82+
which mvn
83+
mvn --version
84+
85+
echo 'Info: Set up helm...'
86+
curl -Lo "helm.tar.gz" "https://objectstorage.us-phoenix-1.oraclecloud.com/n/weblogick8s/b/wko-system-test-files/o/helm%2Fhelm-v${HELM_VERSION}.tar.gz"
87+
tar zxf helm.tar.gz
88+
cp linux-amd64/helm ${WORKSPACE}/bin/helm
89+
helm version
90+
91+
KCLI="kubectl" # this string has a deliberate exclusion in the 'validateCLI.sh' validation check for direct use of the k8s cli
92+
echo "Info: Set up ${KCLI}..."
93+
curl -Lo "${WORKSPACE}/bin/${KCLI}" "https://objectstorage.us-phoenix-1.oraclecloud.com/n/weblogick8s/b/wko-system-test-files/o/${KCLI}%2F${KCLI}-v${KUBECTL_VERSION}"
94+
chmod +x ${WORKSPACE}/bin/${KCLI}
95+
${KCLI} version --client=true
96+
97+
echo 'Info: Set up kind...'
98+
curl -Lo "${WORKSPACE}/bin/kind" "https://objectstorage.us-phoenix-1.oraclecloud.com/n/weblogick8s/b/wko-system-test-files/o/kind%2Fkind-v${KIND_VERSION}"
99+
chmod +x "${WORKSPACE}/bin/kind"
100+
kind version
101+
102+
export RESULT_ROOT=${WORKSPACE}/RESULT_ROOT
103+
export BRANCH_NAME=${BRANCH}
104+
105+
cd $WORKSPACE
106+
[ -d ${WORKSPACE}/logdir ] && rm -rf ${WORKSPACE}/logdir && mkdir -p ${WORKSPACE}/logdir
107+
pwd
108+
ls
109+
110+
echo "Info: soft limits"
111+
ulimit -a
112+
echo "Info: hard limits"
113+
ulimit -aH
114+
115+
mkdir $WORKSPACE/jdk
116+
cd $WORKSPACE/jdk
117+
wget https://download.oracle.com/java/17/archive/jdk-17.0.5_linux-x64_bin.tar.gz
118+
tar -xvf jdk-17.0.5_linux-x64_bin.tar.gz
119+
120+
export JAVA_HOME=$WORKSPACE/jdk/jdk-17.0.5
121+
cd $WORKSPACE
122+
123+
echo "Info: Run tests.."
124+
sh -x ./vztest.sh -t "${IT_TEST}" -v ${KUBE_VERSION} -p ${PARALLEL_RUN} -d ${WDT_DOWNLOAD_URL} -i ${WIT_DOWNLOAD_URL} -x ${NUMBER_OF_THREADS} -m ${MAVEN_PROFILE_NAME}
125+
126+
mkdir -m777 -p "${WORKSPACE}/logdir/${BUILD_TAG}/wl_k8s_test_results"
127+
journalctl --utc --dmesg --system --since "$start_time" > "${WORKSPACE}/logdir/${BUILD_TAG}/wl_k8s_test_results/journalctl-compute.out"
128+
129+
sudo chown -R opc "${WORKSPACE}/logdir/${BUILD_TAG}"

0 commit comments

Comments
 (0)