Skip to content

Commit 820c4e6

Browse files
author
Barkha Choithani
committed
added changes in jenkins and make file to support upgrade tests
1 parent a7bfd21 commit 820c4e6

File tree

3 files changed

+38
-10
lines changed

3 files changed

+38
-10
lines changed

Jenkinsfile

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ void pullImage() {
135135
sh """
136136
echo "\$docker_password" | docker login --username \$docker_user --password-stdin ${dockerRegistry}
137137
docker pull ${dockerRepository}:${dockerVersion}
138+
docker pull ${dockerRepository}:${dockerVersion}
139+
docker pull ${dockerRepository}:${prevDockerVersion}
138140
"""
139141
}
140142
}
@@ -170,13 +172,16 @@ pipeline {
170172
dockerRepository = "${dockerRegistry}/marklogic/marklogic-server-centos"
171173
dockerVerDivider = getVersionDiv(params.ML_VERSION)
172174
dockerVersion = "${ML_VERSION}${dockerVerDivider}${timeStamp}-centos-${dockerReleaseVer}"
175+
prevDockerVersion = "${PREV_ML_VERSION}${dockerVerDivider}${timeStamp}-centos-${prevDockerReleaseVer}"
173176
}
174177

175178
parameters {
176179
string(name: 'emailList', defaultValue: emailList, description: 'List of email for build notification', trim: true)
177180
choice(name: 'ML_VERSION', choices: '11.0\n12.0\n10.0\n9.0', description: 'MarkLogic version. used to pick appropriate docker image')
178181
booleanParam(name: 'KUBERNETES_TESTS', defaultValue: true, description: 'Run kubernetes tests')
179182
string(name: 'dockerReleaseVer', defaultValue: '1.0.1', description: 'Current Docker version. (e.g. 1.0.1)', trim: true)
183+
choice(name: 'PREV_ML_VERSION', choices: '10.0\n9.0', description: 'Previous MarkLogic version for MarkLogic upgrade tests')
184+
string(name: 'prevDockerReleaseVer', defaultValue: '1.0.1', description: 'Previous Docker version for MarkLogic upgrade tests. (e.g. 1.0.1)', trim: true)
180185
}
181186

182187
stages {
@@ -205,7 +210,7 @@ pipeline {
205210
steps {
206211
sh """
207212
export MINIKUBE_HOME=/space;
208-
make test dockerImage=${dockerRepository}:${dockerVersion} saveOutput=true
213+
make test dockerImage=${dockerRepository}:${dockerVersion} prevDockerImage=${dockerRepository}:${prevDockerVersion} saveOutput=true
209214
"""
210215
}
211216
}

makefile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
dockerImage?=marklogic-centos/marklogic-server-centos:10-internal
2-
1+
dockerImage?=ml-docker-dev.marklogic.com/marklogic/marklogic-server-centos:11.0.20230307-centos-1.0.2
2+
prevDockerImage?=ml-docker-dev.marklogic.com/marklogic/marklogic-server-centos:10.0-20230307-centos-1.0.2
33
## System requirement:
44
## - Go
55
## - gotestsum (if you want to enable saveOutput for testing commands)
@@ -80,6 +80,7 @@ lint:
8080
## Run all end to end tests
8181
## Options:
8282
## * [dockerImage] optional. default is marklogicdb/marklogic-db:latest. Example: dockerImage=marklogic-centos/marklogic-server-centos:10-internal
83+
## * [prevDockerImage] optional. used for marklogic upgrade tests
8384
## * [saveOutput] optional. Save the output to a xml file. Example: saveOutput=true
8485
.PHONY: e2e-test
8586
e2e-test: prepare
@@ -92,6 +93,9 @@ lint:
9293
@echo "=====Loading marklogc image $(dockerImage) to minikube cluster"
9394
minikube image load $(dockerImage)
9495

96+
@echo "=====Loading marklogc image $(prevDockerImage) to minikube cluster"
97+
minikube image load $(prevDockerImage)
98+
9599
@echo "=====Running e2e tests"
96100
$(if $(saveOutput),gotestsum --junitfile test/test_results/e2e-tests.xml ./test/e2e/... -count=1 -timeout 30m, go test -v -count=1 -timeout 30m ./test/e2e/...)
97101

test/e2e/upgrade_test.go

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ func TestHelmUpgrade(t *testing.T) {
2929
imageTag, tagPres := os.LookupEnv("dockerVersion")
3030

3131
if !repoPres {
32-
imageRepo = "marklogic-centos/marklogic-server-centos"
32+
imageRepo = "ml-docker-dev.marklogic.com/marklogic/marklogic-server-centos"
3333
t.Logf("No imageRepo variable present, setting to default value: " + imageRepo)
3434
}
3535

3636
if !tagPres {
37-
imageTag = "10-internal"
37+
imageTag = "11.0.20230307-centos-1.0.2"
3838
t.Logf("No imageTag variable present, setting to default value: " + imageTag)
3939
}
4040

@@ -116,6 +116,23 @@ func TestMLupgrade(t *testing.T) {
116116
if e != nil {
117117
t.Fatalf(e.Error())
118118
}
119+
imageRepo, repoPres := os.LookupEnv("dockerRepository")
120+
imageTag, tagPres := os.LookupEnv("dockerVersion")
121+
prevImageTag, prevTagPres := os.LookupEnv("dockerVersion")
122+
123+
if !repoPres {
124+
imageRepo = "ml-docker-dev.marklogic.com/marklogic/marklogic-server-centos"
125+
t.Logf("No imageRepo variable present, setting to default value: " + imageRepo)
126+
}
127+
if !tagPres {
128+
imageTag = "11.0.20230307-centos-1.0.2"
129+
t.Logf("No imageTag variable present, setting to default value: " + imageTag)
130+
}
131+
if !prevTagPres {
132+
prevImageTag = "10.0-20230307-centos-1.0.2"
133+
t.Logf("No imageTag variable present, setting to default value: " + prevImageTag)
134+
}
135+
119136
username := "admin"
120137
password := "admin"
121138

@@ -127,8 +144,8 @@ func TestMLupgrade(t *testing.T) {
127144
"persistence.enabled": "false",
128145
"replicaCount": "1",
129146
"updateStrategy.type": "OnDelete",
130-
"image.repository": "ml-docker-dev.marklogic.com/marklogic/marklogic-server-centos",
131-
"image.tag": "10.0-20230307-centos-1.0.2",
147+
"image.repository": imageRepo,
148+
"image.tag": prevImageTag,
132149
"auth.adminUsername": username,
133150
"auth.adminPassword": password,
134151
},
@@ -148,12 +165,14 @@ func TestMLupgrade(t *testing.T) {
148165
// wait until second pod is in Ready status
149166
k8s.WaitUntilPodAvailable(t, kubectlOptions, podName, 20, 20*time.Second)
150167

168+
k8s.RunKubectl(t, kubectlOptions, "describe", "pod", podName)
169+
151170
newOptions := &helm.Options{
152171
KubectlOptions: kubectlOptions,
153172
SetValues: map[string]string{
154173
"persistence.enabled": "false",
155-
"image.repository": "ml-docker-dev.marklogic.com/marklogic/marklogic-server-centos",
156-
"image.tag": "11.0.20230307-centos-1.0.2",
174+
"image.repository": imageRepo,
175+
"image.tag": imageTag,
157176
"logCollection.enabled": "false",
158177
},
159178
}
@@ -189,6 +208,6 @@ func TestMLupgrade(t *testing.T) {
189208
mlVersion := gjson.Get(string(body), `local-cluster-default.version`)
190209

191210
// verify latest MarkLogic version after upgrade
192-
assert.Equal(t, mlVersion.Str, "11.0.0")
211+
assert.Equal(t, mlVersion.Str, imageTag)
193212

194213
}

0 commit comments

Comments
 (0)