Skip to content

Commit 73c5ef5

Browse files
author
nagalakshmi
committed
updated jenkinsfile as per .editorconfig
1 parent a57e668 commit 73c5ef5

File tree

1 file changed

+84
-85
lines changed

1 file changed

+84
-85
lines changed

Jenkinsfile

Lines changed: 84 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
@Library('shared-libraries') _
22

33
def getJavaHomePath() {
4-
if (params.arm_regressions) {
5-
def version = (env.JAVA_VERSION == "JAVA21") ? "21" : "17"
6-
def path = "/usr/lib/jvm/java-${version}-amazon-corretto.aarch64"
7-
return path
8-
} else {
9-
if (env.JAVA_VERSION == "JAVA21") {
10-
return "/home/builder/java/jdk-21.0.1"
11-
} else {
12-
return "/home/builder/java/jdk-17.0.2"
13-
}
14-
}
4+
if (params.arm_regressions) {
5+
def version = (env.JAVA_VERSION == "JAVA21") ? "21" : "17"
6+
def path = "/usr/lib/jvm/java-${version}-amazon-corretto.aarch64"
7+
return path
8+
} else {
9+
if (env.JAVA_VERSION == "JAVA21") {
10+
return "/home/builder/java/jdk-21.0.1"
11+
} else {
12+
return "/home/builder/java/jdk-17.0.2"
13+
}
14+
}
1515
}
1616

1717
def getPlatform() {
@@ -23,30 +23,30 @@ def setConverters() {
2323
}
2424

2525
def setupDockerMarkLogic(String image) {
26-
cleanupDocker()
27-
sh label: 'mlsetup', script: '''#!/bin/bash
28-
echo "Removing any running MarkLogic server and clean up MarkLogic data directory"
29-
sudo /usr/local/sbin/mladmin remove
30-
sudo /usr/local/sbin/mladmin cleandata
31-
cd java-client-api
32-
export PLATFORM=$PLATFORM
33-
export MARKLOGIC_INSTALL_CONVERTERS=$MARKLOGIC_INSTALL_CONVERTERS
34-
docker compose down -v || true
35-
docker volume prune -f
36-
37-
echo "Using image: "''' + image + '''
38-
docker pull ''' + image + '''
39-
40-
MARKLOGIC_IMAGE=''' + image + ''' MARKLOGIC_LOGS_VOLUME=marklogicLogs \
41-
docker compose up -d --build
42-
echo "Waiting for MarkLogic server to initialize."
43-
export JAVA_HOME=$JAVA_HOME_DIR
44-
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
45-
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
46-
./gradlew -i mlWaitTillReady
47-
./gradlew mlTestConnections
48-
./gradlew -i mlDeploy mlReloadSchemas
49-
'''
26+
cleanupDocker()
27+
sh label: 'mlsetup', script: '''#!/bin/bash
28+
echo "Removing any running MarkLogic server and clean up MarkLogic data directory"
29+
sudo /usr/local/sbin/mladmin remove
30+
sudo /usr/local/sbin/mladmin cleandata
31+
cd java-client-api
32+
export PLATFORM=$PLATFORM
33+
export MARKLOGIC_INSTALL_CONVERTERS=$MARKLOGIC_INSTALL_CONVERTERS
34+
docker compose down -v || true
35+
docker volume prune -f
36+
37+
echo "Using image: "''' + image + '''
38+
docker pull ''' + image + '''
39+
40+
MARKLOGIC_IMAGE=''' + image + ''' MARKLOGIC_LOGS_VOLUME=marklogicLogs \
41+
docker compose up -d --build
42+
echo "Waiting for MarkLogic server to initialize."
43+
export JAVA_HOME=$JAVA_HOME_DIR
44+
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
45+
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
46+
./gradlew -i mlWaitTillReady
47+
./gradlew mlTestConnections
48+
./gradlew -i mlDeploy mlReloadSchemas
49+
'''
5050
}
5151

5252
def runTests(String image) {
@@ -63,7 +63,7 @@ def runTests(String image) {
6363
rm -rf ~/.m2/repository/com/squareup/okhttp3/
6464
6565
echo "Ensure all subprojects can be built first."
66-
./gradlew clean build -x test
66+
./gradlew clean build -x test
6767
6868
./gradlew marklogic-client-api:test || true
6969
'''
@@ -118,9 +118,9 @@ def runTestsWithReverseProxy(String image) {
118118
rm -rf ~/.m2/repository/com/squareup/okhttp3/
119119
120120
echo "Ensure all subprojects can be built first."
121-
./gradlew clean build -x test
121+
./gradlew clean build -x test
122122
123-
echo "Running marklogic-client-api tests with reverse proxy."
123+
echo "Running marklogic-client-api tests with reverse proxy."
124124
./gradlew -PtestUseReverseProxyServer=true runReverseProxyServer marklogic-client-api:test || true
125125
'''
126126

@@ -204,34 +204,33 @@ pipeline {
204204
}
205205

206206
stages {
207-
208207
stage('pull-request-tests') {
209208
when {
210-
expression {
209+
expression {
211210
return !params.regressions && !params.arm_regressions
212211
}
213212
}
214213
steps {
215214
setupDockerMarkLogic("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-12")
216215
sh label: 'run marklogic-client-api tests', script: '''#!/bin/bash
217-
export JAVA_HOME=$JAVA_HOME_DIR
218-
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
219-
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
220-
cd java-client-api
216+
export JAVA_HOME=$JAVA_HOME_DIR
217+
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
218+
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
219+
cd java-client-api
221220
222-
echo "Temporary fix for mysterious issue with okhttp3 being corrupted in local Maven cache."
223-
ls -la ~/.m2/repository/com/squareup
221+
echo "Temporary fix for mysterious issue with okhttp3 being corrupted in local Maven cache."
222+
ls -la ~/.m2/repository/com/squareup
224223
rm -rf ~/.m2/repository/com/squareup/okhttp3/
225224
226-
echo "Ensure all subprojects can be built first."
227-
./gradlew clean build -x test
225+
echo "Ensure all subprojects can be built first."
226+
./gradlew clean build -x test
228227
229-
echo "Run a sufficient number of tests to verify the PR."
228+
echo "Run a sufficient number of tests to verify the PR."
230229
./gradlew marklogic-client-api:test --tests ReadDocumentPageTest || true
231230
232231
echo "Run a test with the reverse proxy server to ensure it's fine."
233232
./gradlew -PtestUseReverseProxyServer=true runReverseProxyServer marklogic-client-api-functionaltests:test --tests SearchWithPageLengthTest || true
234-
'''
233+
'''
235234
}
236235
post {
237236
always {
@@ -254,22 +253,22 @@ pipeline {
254253
}
255254
steps {
256255
sh label: 'publish', script: '''#!/bin/bash
257-
export JAVA_HOME=$JAVA_HOME_DIR
258-
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
259-
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
260-
cp ~/.gradle/gradle.properties $GRADLE_USER_HOME;
261-
cd java-client-api
262-
./gradlew publish
263-
'''
256+
export JAVA_HOME=$JAVA_HOME_DIR
257+
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
258+
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
259+
cp ~/.gradle/gradle.properties $GRADLE_USER_HOME;
260+
cd java-client-api
261+
./gradlew publish
262+
'''
264263
}
265264
}
266265

267266
stage('regressions') {
268267
when {
269268
allOf {
270269
branch 'develop'
271-
expression { return params.regressions }
272-
expression { return !params.arm_regressions }
270+
expression { return params.regressions }
271+
expression { return !params.arm_regressions }
273272
}
274273
}
275274

@@ -301,11 +300,11 @@ pipeline {
301300
allOf {
302301
branch 'develop'
303302
expression { return params.arm_regressions }
304-
expression { return !params.regressions }
303+
expression { return !params.regressions }
305304
}
306305
}
307306
agent {label 'javaClientLinuxPool'}
308-
307+
309308
steps{
310309
script {
311310
withCredentials([
@@ -319,35 +318,35 @@ pipeline {
319318
credentialsId: 'headlessDbUserEC2',
320319
role: env.AWS_ROLE,
321320
roleAccount: env.AWS_ROLE_ACCOUNT,
322-
branch: 'master'
321+
branch: 'master'
323322
])
324-
323+
325324
echo "✅ Instance deployed: ${deploymentResult.privateIp}"
326325
echo "✅ Terraform directory: ${deploymentResult.terraformDir}"
327326
echo "✅ Workspace: ${deploymentResult.workspace}"
328327
echo "✅ Status: ${deploymentResult.status}"
329-
330-
// Store deployment info for cleanup
328+
329+
// Store deployment info for cleanup
331330
env.DEPLOYMENT_INSTANCE_NAME = deploymentResult.instanceName
332331
env.DEPLOYMENT_REGION = deploymentResult.region
333332
env.DEPLOYMENT_TERRAFORM_DIR = deploymentResult.terraformDir
334333
env.EC2_PRIVATE_IP = deploymentResult.privateIp
335-
334+
336335
def nodeName = "java-client-agent-${BUILD_NUMBER}"
337336
def remoteFS = "/space/jenkins_home"
338337
def labels = "java-client-agent-${BUILD_NUMBER}"
339338
def instanceIp = env.EC2_PRIVATE_IP
340-
339+
341340
// Attach volumes
342341
def volumeResult = attachInstanceVolumes([
343342
instanceIp: instanceIp,
344343
remoteFS: remoteFS,
345344
branch: 'master'
346345
])
347-
346+
348347
echo "✅ Volume attachment completed: ${volumeResult.volumeAttached}"
349-
echo "✅ Java installed: ${volumeResult.javaInstalled}"
350-
348+
echo "✅ Java installed: ${volumeResult.javaInstalled}"
349+
351350
//Install dependencies AND run init scripts
352351
def depsResult = installDependenciesAndInitScripts([
353352
instanceIp: instanceIp,
@@ -356,7 +355,7 @@ pipeline {
356355
initScriptsDir: 'terraform-templates/java-client-api/scripts',
357356
initScriptsFile: 'terraform-templates/java-client-api/initscripts'
358357
])
359-
358+
360359
echo "✅ Dependencies installed: ${depsResult.dependenciesInstalled}"
361360
if (depsResult.initScriptsExecuted) {
362361
echo "✅ Init scripts executed: ${depsResult.initScriptsCount} scripts"
@@ -373,7 +372,7 @@ pipeline {
373372
timeoutMinutes: 5,
374373
credentialsId: 'qa-builder-aws'
375374
])
376-
375+
377376
echo "✅ Jenkins agent created: ${agentResult.nodeName}"
378377
echo "✅ Agent status: ${agentResult.status}"
379378
}
@@ -382,22 +381,22 @@ pipeline {
382381
}
383382

384383
stage('regressions-11 arm infrastructure') {
385-
agent { label "java-client-agent-${BUILD_NUMBER}" }
384+
agent { label "java-client-agent-${BUILD_NUMBER}" }
386385
when {
387386
allOf {
388387
branch 'develop'
389388
expression { return params.arm_regressions }
390-
expression { return !params.regressions }
389+
expression { return !params.regressions }
391390
}
392391
}
393392
steps {
394-
checkout([$class: 'GitSCM',
395-
branches: scm.branches,
396-
doGenerateSubmoduleConfigurations: false,
397-
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'java-client-api']],
398-
submoduleCfg: [],
393+
checkout([$class: 'GitSCM',
394+
branches: scm.branches,
395+
doGenerateSubmoduleConfigurations: false,
396+
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'java-client-api']],
397+
submoduleCfg: [],
399398
userRemoteConfigs: scm.userRemoteConfigs])
400-
399+
401400
runTests("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi9-arm:latest-11")
402401
}
403402
post {
@@ -409,21 +408,20 @@ pipeline {
409408
}
410409
}
411410
}
412-
413-
414411
}
415412

416413
post{
417414
always {
418415
script {
419416
echo "🧹 Starting cleanup process..."
420-
417+
421418
try {
422419
// Cleanup Terraform infrastructure
423420
if (env.EC2_PRIVATE_IP) {
424421
echo "🗑️ Cleaning up Terraform resources..."
425422
node('javaClientLinuxPool') {
426423
try {
424+
//`sleep 60` allows AWS resources to stabilize before Terraform destroys them, preventing "resource in use" errors
427425
sleep 60
428426
unstash "terraform-${BUILD_NUMBER}"
429427
withCredentials([
@@ -448,7 +446,7 @@ pipeline {
448446
} else {
449447
echo "ℹ️ No EC2 instance IP found, skipping Terraform cleanup"
450448
}
451-
449+
452450
// Cleanup Jenkins agent using shared library function
453451
def nodeName = "java-client-agent-${BUILD_NUMBER}"
454452
echo "🗑️ Cleaning up Jenkins agent: ${nodeName}"
@@ -459,7 +457,7 @@ pipeline {
459457
echo "⚠️ Warning: Jenkins agent cleanup failed: ${jenkinsCleanupException.message}"
460458
}
461459
echo "✅ Pipeline cleanup completed successfully."
462-
460+
463461
} catch (Exception cleanupException) {
464462
echo "⚠️ Warning: Cleanup encountered an error: ${cleanupException.message}"
465463
echo "📋 Continuing with pipeline completion despite cleanup issues..."
@@ -468,3 +466,4 @@ pipeline {
468466
}
469467
}
470468
}
469+

0 commit comments

Comments
 (0)