Skip to content

Commit ebe981f

Browse files
jvpasinattohors
andauthored
CLOUD-915: Add flags to disable monitoring and logging in PR job (#1187)
* CLOUD-915: Add flags to disable monitoring and logging in PR job * Add total test time and some refactor * Revert some vars --------- Co-authored-by: Viacheslav Sarzhan <slava.sarzhan@percona.com>
1 parent 97d93c3 commit ebe981f

File tree

1 file changed

+57
-20
lines changed

1 file changed

+57
-20
lines changed

Jenkinsfile

Lines changed: 57 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,40 @@
1-
region="us-central1-a"
2-
testUrlPrefix="https://percona-jenkins-artifactory-public.s3.amazonaws.com/cloud-pg-operator"
3-
tests=[]
1+
region = 'us-central1-a'
2+
testUrlPrefix = "https://percona-jenkins-artifactory-public.s3.amazonaws.com/cloud-pg-operator"
3+
tests = []
44

55
void createCluster(String CLUSTER_SUFFIX) {
66
withCredentials([string(credentialsId: 'GCP_PROJECT_ID', variable: 'GCP_PROJECT'), file(credentialsId: 'gcloud-key-file', variable: 'CLIENT_SECRET_FILE')]) {
77
sh """
8-
NODES_NUM=3
98
export KUBECONFIG=/tmp/$CLUSTER_NAME-${CLUSTER_SUFFIX}
9+
gcloud auth activate-service-account --key-file $CLIENT_SECRET_FILE
10+
gcloud config set project $GCP_PROJECT
1011
ret_num=0
1112
while [ \${ret_num} -lt 15 ]; do
1213
ret_val=0
13-
gcloud auth activate-service-account --key-file $CLIENT_SECRET_FILE
14-
gcloud config set project $GCP_PROJECT
15-
gcloud container clusters list --filter $CLUSTER_NAME-${CLUSTER_SUFFIX} --zone $region --format='csv[no-heading](name)' | xargs gcloud container clusters delete --zone $region --quiet || true
16-
gcloud container clusters create --zone $region $CLUSTER_NAME-${CLUSTER_SUFFIX} --cluster-version=1.30 --machine-type=n1-standard-4 --preemptible --disk-size 30 --num-nodes=\$NODES_NUM --network=jenkins-vpc --subnetwork=jenkins-${CLUSTER_SUFFIX} --no-enable-autoupgrade --cluster-ipv4-cidr=/21 --labels delete-cluster-after-hours=6 --enable-ip-alias && \
14+
gcloud container clusters list --filter $CLUSTER_NAME-${CLUSTER_SUFFIX} --zone ${region} --format='csv[no-heading](name)' | xargs gcloud container clusters delete --zone ${region} --quiet || true
15+
gcloud container clusters create $CLUSTER_NAME-${CLUSTER_SUFFIX} \
16+
--preemptible \
17+
--zone=${region} \
18+
--machine-type='n1-standard-4' \
19+
--cluster-version='1.30' \
20+
--num-nodes=3 \
21+
--labels='delete-cluster-after-hours=6' \
22+
--disk-size=30 \
23+
--network=jenkins-vpc \
24+
--subnetwork=jenkins-${CLUSTER_SUFFIX} \
25+
--cluster-ipv4-cidr=/21 \
26+
--enable-ip-alias \
27+
--no-enable-autoupgrade \
28+
--monitoring=NONE \
29+
--logging=NONE \
30+
--no-enable-managed-prometheus \
31+
--quiet && \
1732
kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user jenkins@"$GCP_PROJECT".iam.gserviceaccount.com || ret_val=\$?
1833
if [ \${ret_val} -eq 0 ]; then break; fi
1934
ret_num=\$((ret_num + 1))
2035
done
2136
if [ \${ret_num} -eq 15 ]; then
22-
gcloud container clusters list --filter $CLUSTER_NAME-${CLUSTER_SUFFIX} --zone $region --format='csv[no-heading](name)' | xargs gcloud container clusters delete --zone $region --quiet || true
37+
gcloud container clusters list --filter $CLUSTER_NAME-${CLUSTER_SUFFIX} --zone ${region} --format='csv[no-heading](name)' | xargs gcloud container clusters delete --zone ${region} --quiet || true
2338
exit 1
2439
fi
2540
"""
@@ -41,7 +56,7 @@ void shutdownCluster(String CLUSTER_SUFFIX) {
4156
kubectl delete pods --all -n \$namespace --force --grace-period=0 || true
4257
done
4358
kubectl get svc --all-namespaces || true
44-
gcloud container clusters delete --zone $region $CLUSTER_NAME-${CLUSTER_SUFFIX}
59+
gcloud container clusters delete --zone ${region} $CLUSTER_NAME-${CLUSTER_SUFFIX}
4560
"""
4661
}
4762
}
@@ -65,7 +80,7 @@ void deleteOldClusters(String FILTER) {
6580
break
6681
fi
6782
done
68-
gcloud container clusters delete --async --zone $region --quiet \$GKE_CLUSTER || true
83+
gcloud container clusters delete --async --zone ${region} --quiet \$GKE_CLUSTER || true
6984
done
7085
fi
7186
"""
@@ -120,7 +135,7 @@ void markPassedTests() {
120135

121136
for (int i=0; i<tests.size(); i++) {
122137
def testName = tests[i]["name"]
123-
def file="${env.GIT_BRANCH}-${env.GIT_SHORT_COMMIT}-$testName"
138+
def file = "${env.GIT_BRANCH}-${env.GIT_SHORT_COMMIT}-$testName"
124139
def retFileExists = sh(script: "aws s3api head-object --bucket percona-jenkins-artifactory --key ${JOB_NAME}/${env.GIT_SHORT_COMMIT}/${file} >/dev/null 2>&1", returnStatus: true)
125140

126141
if (retFileExists == 0) {
@@ -149,26 +164,48 @@ void printKubernetesStatus(String LOCATION, String CLUSTER_SUFFIX) {
149164
"""
150165
}
151166

152-
TestsReport = '| Test name | Status |\r\n| ------------- | ------------- |'
167+
String formatTime(def time) {
168+
if (!time || time == "N/A") return "N/A"
169+
170+
try {
171+
def totalSeconds = time as Double
172+
def hours = (totalSeconds / 3600) as Integer
173+
def minutes = ((totalSeconds % 3600) / 60) as Integer
174+
def seconds = (totalSeconds % 60) as Integer
175+
176+
return String.format("%02d:%02d:%02d", hours, minutes, seconds)
177+
178+
} catch (Exception e) {
179+
println("Error converting time: ${e.message}")
180+
return time.toString()
181+
}
182+
}
183+
184+
TestsReport = '| Test Name | Result | Time |\r\n| ----------- | -------- | ------ |'
153185
TestsReportXML = '<testsuite name=\\"PG\\">\n'
154186

155187
void makeReport() {
156-
def wholeTestAmount=tests.size()
188+
def wholeTestAmount = tests.size()
157189
def startedTestAmount = 0
190+
def totalTestTime = 0
158191

159192
for (int i=0; i<tests.size(); i++) {
160193
def testName = tests[i]["name"]
161194
def testResult = tests[i]["result"]
162195
def testTime = tests[i]["time"]
163196
def testUrl = "${testUrlPrefix}/${env.GIT_BRANCH}/${env.GIT_SHORT_COMMIT}/${testName}.log"
164197

198+
if (testTime instanceof Number) {
199+
totalTestTime += testTime
200+
}
201+
165202
if (tests[i]["result"] != "skipped") {
166203
startedTestAmount++
167204
}
168-
TestsReport = TestsReport + "\r\n| "+ testName +" | ["+ testResult +"]("+ testUrl +") |"
205+
TestsReport = TestsReport + "\r\n| " + testName + " | [" + testResult + "](" + testUrl + ") | " + formatTime(testTime) + " |"
169206
TestsReportXML = TestsReportXML + '<testcase name=\\"' + testName + '\\" time=\\"' + testTime + '\\"><'+ testResult +'/></testcase>\n'
170207
}
171-
TestsReport = TestsReport + "\r\n| We run $startedTestAmount out of $wholeTestAmount|"
208+
TestsReport = TestsReport + "\r\n| We run $startedTestAmount out of $wholeTestAmount | | " + formatTime(totalTestTime) + " |"
172209
TestsReportXML = TestsReportXML + '</testsuite>\n'
173210

174211
sh """
@@ -244,10 +281,10 @@ void runTest(Integer TEST_ID) {
244281

245282
void prepareNode() {
246283
sh """
247-
sudo curl -s -L -o /usr/local/bin/kubectl https://dl.k8s.io/release/\$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl && sudo chmod +x /usr/local/bin/kubectl
284+
sudo curl -sLo /usr/local/bin/kubectl https://dl.k8s.io/release/\$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl && sudo chmod +x /usr/local/bin/kubectl
248285
kubectl version --client --output=yaml
249286
250-
curl -fsSL https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz | sudo tar -C /usr/local/bin --strip-components 1 -xzf - linux-amd64/helm
287+
curl -fsSL https://get.helm.sh/helm-v3.18.3-linux-amd64.tar.gz | sudo tar -C /usr/local/bin --strip-components 1 -xzf - linux-amd64/helm
251288
252289
sudo curl -fsSL https://github.com/mikefarah/yq/releases/download/v4.44.1/yq_linux_amd64 -o /usr/local/bin/yq && sudo chmod +x /usr/local/bin/yq
253290
sudo curl -fsSL https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux64 -o /usr/local/bin/jq && sudo chmod +x /usr/local/bin/jq
@@ -258,8 +295,8 @@ void prepareNode() {
258295
259296
kubectl krew install assert
260297
261-
# v0.17.0 kuttl version
262-
kubectl krew install --manifest-url https://raw.githubusercontent.com/kubernetes-sigs/krew-index/336ef83542fd2f783bfa2c075b24599e834dcc77/plugins/kuttl.yaml
298+
# v0.22.0 kuttl version
299+
kubectl krew install --manifest-url https://raw.githubusercontent.com/kubernetes-sigs/krew-index/02d5befb2bc9554fdcd8386b8bfbed2732d6802e/plugins/kuttl.yaml
263300
echo \$(kubectl kuttl --version) is installed
264301
265302
sudo tee /etc/yum.repos.d/google-cloud-sdk.repo << EOF

0 commit comments

Comments
 (0)